串口通讯中垃圾数据的处理 | 您所在的位置:网站首页 › 串口数据显示E开头 › 串口通讯中垃圾数据的处理 |
在双机串口通讯中,开关机(串口开闭)期间发送方有时候会发一些无效的垃圾数据,同时因为有的协议解析只有接收到一定数量才能解析。这就会出现一个现象:如果开头的数据是错误的,又没有及时丢弃,后面正确的数据接着位置存储,最终造成解析失败。现象就是有时候数据交互正确,有时候错误(冷启动第一次出现错误的几率较大)。所以串口通讯中对垃圾数据的防护及解析的顺序方法就显的很重要。 if(USART_GetITStatus(UART4,USART_IT_RXNE)) { USART_ITConfig(UART4, USART_IT_RXNE, DISABLE); Rbuff[rcnt++] =(char)USART_ReceiveData(UART4);/*读DR清0*/ if((rcnt >3)&&(rcnt >=Rbuff[1]))/**/ { if((0X03 == Rbuff[2])&&(0X60 == Rbuff[3]))/*打印命令*/ { if(rcnt==64)/*一个分包结束*/ { Flag_IsPrtCmd = TRUE; Cmdbuff_len = Rbuff[1]; if(Calculate_JiaoYan(Rbuff) ==Rbuff[Cmdbuff_len -1]) { for(i=0;i |
CopyRight 2018-2019 实验室设备网 版权所有 |