1.FF FF 08 00 00 00 00 00 00 73 7B 36(这条数据五秒一收)
2.FF FF 0A 00 00 00 00 00 00 01 4D 01 59 36(这条数据一秒一收)
3.FF FF 28 00 00 00 00 00 00 60 00 01 00 1C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A5 36(这条数据正确就接收需要处理我这边响应,发送一次)
我使用串口一中断接收
void USART1_IRQHandler(void)
{
if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)
{
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
Rxdata1[Rxcount1++]=USART_ReceiveData(USART1);
}
}
我对于前面1和2数据是不处理直接丢弃的!可是我把Rxcount1=0重新等待指令3的时候没有响应我的指令?
初步分析:
1.我赋值Rxcount1=0的时候,由于还在接收指令2可以能数据接收不正确。我接收3的指令时候出现问题没有响应以后的指令。
2.对于前面二条指令我识别之后停止串口接收中断,Rxcount1=0处理完在开启。导致3指令还是接收不正确。
(说那么多就是想说Rxcount1=0的时候不知道串口接收到底是不是正常的第一帧数据ff接收,所以导致后面不好怎么处理)
对于这种不定长的数据有什么好的办法吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>