串口接收数据不正确

2019-03-23 18:20发布

用自己写的上位机程序读传感器,收到的协议是正确的(7个字节 01 0D 3个数据字节 2个校验字节),但用stm32的串口3读出来的却是4个字节(与协议完全不对),没有发生溢出错误,使stm32与上位机通讯正常,这是什么原因呢??
  1. void USART3_IRQHandler(void)
  2. {               
  3. if(USART_GetITStatus(USART3,USART_IT_RXNE)==SET)                  
  4.         {
  5.                 Delay2(1);
  6.                 USART_ClearITPendingBit(USART3,USART_IT_RXNE);
  7.                 U3_ReceivedBuf[U3_flag++] = USART_ReceiveData(USART3);                         
  8.         }
  9.        
  10.         if(USART_GetFlagStatus(USART3,USART_FLAG_ORE)!=RESET)
  11.     {
  12.         USART_ClearFlag(USART3,USART_FLAG_ORE);    //?SR
  13.                 WriteString(165,80,"overflow",Red);       
  14.         }         
  15. }
复制代码

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
wajuka
1楼-- · 2019-03-24 00:02
/ 中断里面用延时不太好吧
mynameisbill2
2楼-- · 2019-03-24 05:45
恩 那个去了也没关系,但问题不在那,去了之后效果一样,还是不对
dontium
3楼-- · 2019-03-24 09:25
 精彩回答 2  元偷偷看……
mynameisbill2
4楼-- · 2019-03-24 12:51
波特率没问题,传感器是买的,封装好的协议,用上位机直接读没问题,但是用stm32读,收到的数据不对,这是为什么呢?大神?
damiaa
5楼-- · 2019-03-24 13:43
一帧数据发送完毕可以立即关中断。
雨后的梧桐
6楼-- · 2019-03-24 19:31
 精彩回答 2  元偷偷看……

一周热门 更多>