STM32F0串口中断接收的奇怪问题

2019-07-14 15:32发布

程序运行后,在中断服务程序的(1)和(2)位置设置断点后全速运行。电脑使用串口助手首次发送256个字节到STM32F0可以正常运行到断点(2)。
然后电脑上串口助手再次发送256字节后,就停在断点(1)了。这是为什么?
网上说中断服务中判断到ORE时,读一次接收缓冲就行了。但是没作用啊
  if(USART_GetFlagStatus(USART1, USART_FLAG_ORE) != RESET)
   {
     USART_ReceiveData(USART1);  
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
TOPCB
1楼-- · 2019-07-15 19:36
if (0 == Usart1RxTerm)

    {

      Usart1RxBuffer[Usart1RxCount++] =   SART_ReceiveData(USART1);

    }      

这里注意,你把Usart1RxTerm = 1;数据不在接收,这里可以改为,
c=SART_ReceiveData(USART1);
if (0 == Usart1RxTerm)

    {

      Usart1RxBuffer[Usart1RxCount++] =   c;
    }   

这样就可以了.
sdfasda
2楼-- · 2019-07-15 21:54
支持
f1070388065
3楼-- · 2019-07-16 02:28
帮顶!!!
fsjinhao1
4楼-- · 2019-07-16 03:38
 精彩回答 2  元偷偷看……

一周热门 更多>