STM32如何处理数据?

2019-07-21 04:31发布

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接收,所以导致后面不好怎么处理)
对于这种不定长的数据有什么好的办法吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。