[STM32F1] STM32cube库如何清楚串口ORE标志?

[复制链接]
1478|7
 楼主| gaobq 发表于 2020-12-21 15:16 | 显示全部楼层 |阅读模式
使用STM32F103单片机做测试,使用串口1,接收和发送数据,如果串口收到数据尚未处理,又有新的数据进入,就会引起ORE(Over Run Error),现在使用stm32cubeMX自动生成的代码,使用HAL库,我不知道如何编写代码,判断ORE标识是否置位,如果置位了,清除这个标志。网上查了资料,不使用HAL库的代码有。看了好几遍stm32f1_ha1_uart.h 和 stm32f1_hal_uart.c,也没能编写出基于Hal库的手动清ORE的代码。
请各位大咖指点一下,不胜感谢!
yklstudent 发表于 2020-12-21 16:04 | 显示全部楼层
HAL应该本身就有溢出处理,你不放心就找到中断自己再加入判断处理,不过感觉多余了,不如查看是否自己的使用存在问题
香水城 发表于 2020-12-26 22:09 | 显示全部楼层
对于这个溢出标志的处理,不同系列可能略有差异, 对于F1系列来说,就是通过一个软件操作序列达到对其清零的目的。

即先读一下 USART_SR寄存器,接着读下 USART_DR寄存器, 这个代码不难组织吧。

It is cleared by a software sequence (an read to the
USART_SR register followed by a read to the USART_DR register).
磨砂 发表于 2021-1-11 11:22 | 显示全部楼层
读一下里边的数据就可以啊
晓伍 发表于 2021-1-11 11:23 | 显示全部楼层
并不需要手动清除
八层楼 发表于 2021-1-11 11:24 | 显示全部楼层
读一下寄存器多简单啊 比手动清除还简单呢
观海 发表于 2021-1-11 11:28 | 显示全部楼层
与其在这里纠结 不如写一段收取数据的代码
guanjiaer 发表于 2021-1-11 11:28 | 显示全部楼层
进入中断后直接写一个中断处理函数啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

172

主题

831

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部