在线时间159 小时
UID3166156
注册时间2015-9-17
NXP金币0
该用户从未签到
金牌会员
 
- 积分
- 1356
- 最后登录
- 2016-12-5
|

楼主 |
发表于 2016-3-7 09:01:34
|
显示全部楼层
下边的逻辑关系能帮我具体解释一下吗?
if ((0 != g_recv_size) && (0xFFFFFFFF != g_recv_size)) //接收BUFF最大64字节 不能执行超过64位的传输
{
int32_t i;
int32_t UartRecLen;
if(g_curr_recv_buf[0]==0XAA)
{
switch(g_curr_recv_buf[1])
{
case 0x01: //读参数0XAA 0X01
if(g_recv_size!=2)
{
g_recv_size = 0;
g_send_size=0;
memset(g_curr_send_buf,0,sizeof(g_curr_send_buf));
memset(g_curr_recv_buf,0,sizeof(g_curr_recv_buf)); //重置串口
return;
}
//返回数据13字节,0XAA 0X01 波特率(1字节),模式(1字节),滤波方式(1字节),验收码(4字节),屏蔽码(4字节)
g_send_size=0;
memset(g_curr_send_buf,0,sizeof(g_curr_send_buf)); //填写发送缓冲区,打包
g_curr_send_buf[0]=g_curr_recv_buf[0];
g_curr_send_buf[1]=g_curr_recv_buf[1];
g_curr_send_buf[2]=CAN_CONFIG1.m_BaudRate;
g_curr_send_buf[3]=CAN_CONFIG1.m_WorkMode;
g_curr_send_buf[4]=CAN_CONFIG1.m_FileterRate;
g_curr_send_buf[5]=CAN_CONFIG1.m_AccCode[0];
g_curr_send_buf[6]=CAN_CONFIG1.m_AccCode[1];
g_curr_send_buf[7]=CAN_CONFIG1.m_AccCode[2];
g_curr_send_buf[8]=CAN_CONFIG1.m_AccCode[3];
g_curr_send_buf[9]=CAN_CONFIG1.m_AccMask[0];
g_curr_send_buf[10]=CAN_CONFIG1.m_AccMask[1];
g_curr_send_buf[11]=CAN_CONFIG1.m_AccMask[2];
g_curr_send_buf[12]=CAN_CONFIG1.m_AccMask[3];
g_send_size=13;
g_recv_size = 0;
memset(g_curr_recv_buf,0,sizeof(g_curr_recv_buf));
break; |
|