在调试程序时发现,甲方提供的通信协议,只有帧头和信息位,没有帧尾,没有校验位。 刚开始时按照甲方提供的通信协议,简单的写了一个串口中断接收程序。但是在测试中发现:发送协议 FEFE,000,00000000,002,002,002,?000,设备可以正常接收,但在帧尾部添加一个字节或者减少一个字节再发送,设备依然响应。
以下为错误的代码。
// if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)
// {
// Counter_USART++;
// c=USART3->DR;
// clear=USART3->DR;//清除中断标志位
// if(c==0x35 && Start_Rec==0 && Counter_USART==1)
// {
// Buf_USART3[0]=c;
// Start_Rec=1;
// }
// else if(Buf_USART3[0]==0x35 && c==0x35 && Start_Rec==1 && Counter_USART==2)
// {
// Buf_USART3[1]=c;
// Start_Rec=2;
// }
// else if(Buf_USART3[1]==0x35 && c==0x61 &&Start_Rec==2 && Counter_USART==3)
// {
// Buf_USART3[2]=c;
// Start_Rec=3;
// }
// else if(Buf_USART3[2]==0x61 && c==0x61 &&Start_Rec==3 && Counte