小学生
最后登录1970-1-1
在线时间 小时
注册时间2016-10-30
|
利用RS232、RS485以及CAN总线进行通信,如何分别对三种数据进行处理?而且232传输的数据还需要添加帧起始,帧号,数据内容和校验位等,错误如下:
if(USART2_Rxflag)
{
uint8_t i;
USART2_Rxflag=0;
USART2_Buf[0] = 0xA8;//帧起始
USART2_Buf[1] = 0x02;//帧号,代表的是232数据
USART2_rcvCnt = 1;
if (USART2_rcvCnt >= 1 && USART2_rcvCnt < sizeof(USART2_Buf))//sizeof(ucaRxBuf)数组长度
{
USART2_Buf[USART2_rcvCnt++] = USART2_datTemp;//将数据一个一个存入缓冲器,直到换行符后发送
}
/* if (USART2_rcvCnt < sizeof(USART2_Buf))//sizeof(ucaRxBuf)数组长度
{
USART2_Buf[USART2_rcvCnt++] = USART2_datTemp;//将数据一个一个存入缓冲器,直到换行符后发送
}*/
else
{
USART2_rcvCnt = 0;
}
//收到回车换行,则发送给SIM模块
if (USART2_datTemp == 0x0A) //换行字符\r
{
//Usart_SendStr_length( USART3, USART2_Buf, USART2_rcvCnt );
Usart_SendStr_length( USART2, USART2_Buf, USART2_rcvCnt );//调试
USART2_rcvCnt = 0;
}
}
|
|