请问串口错误怎么恢复?

2019-07-14 14:46发布

芯片STM32F0系列的。调试的时候,板子进入某个断点,而PC端一直在发串口数据,这个时候只要再按F10就会跑到串口中断里面,但是不一定是收数据,也不知道串口的什么标记置位了,在串口状态寄存器有好多错误标记都置位了。
错误原因估计是中断的时候串口的硬件缓存区溢出了或什么的,反正它知道有很多数据没有来得及接收。
请问下这个时候怎么恢复串口,有库函数吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
kingnet6688
1楼-- · 2019-07-14 16:22
一般进行2个操作就可以了
1,清除错误标志。
2,读一次DR寄存器。
但是要不要记录错误,并作一些处理,就是你应用程序的事了。
lizhongrui
2楼-- · 2019-07-14 21:17
 精彩回答 2  元偷偷看……
山川1998
3楼-- · 2019-07-15 01:37
库函数 和 寄存器都有 防止串口溢出错误的。
比如放2个进去
   if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET)            
//    {
//        USART_ITConfig(USART1, USART_IT_TXE, DISABLE);                  
//    }

//    if(USART_GetFlagStatus(USART1,USART_FLAG_ORE)==SET)
//    {
//        USART_ClearFlag(USART1,USART_FLAG_ORE);        
//        USART_ReceiveData(USART1);                                
//    }
zhi168
4楼-- · 2019-07-15 04:18
检测到串口错误后进行清除处理
60user22
5楼-- · 2019-07-15 08:57
我的经验是,如果使用RTE的串口库,就没有这样的问题,所有出错情况无需理会。
60user33
6楼-- · 2019-07-15 13:25
这是在仿真模式吗,进入中断后,清除标志位会不会有改善啊。

一周热门 更多>