stm32串口空闲中断如何接受完整的不定长的一帧数据

  在调试程序时发现,甲方提供的通信协议,只有帧头和信息位,没有帧尾,没有校验位。 刚开始时按照甲方提供的通信协议,简单的写了一个串口中断接收程序。但是在测试中发现:发送协议 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
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值