打印
[STM32F0]

UART的问题

[复制链接]
1027|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bxb_lhj|  楼主 | 2015-5-21 14:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在研究051的uart库,,发现一个问题

Bit 5 RXNEIE: RXNE interrupt enable
This bit is set and cleared by software.
0: Interrupt is inhibited
1: A USART interrupt is generated whenever ORE=1 or RXNE=1 in the USARTx_ISR
register

其中ORE产生的中断使用USART_GetITStatus()函数时有问题,因为函数查询了这个
Bit 0 EIE: Error interrupt enable
Error Interrupt Enable Bit is required to enable interrupt generation in case of a framing
error, overrun error or noise flag (FE=1 or ORE=1 or NF=1 in the USARTx_ISR register).
0: Interrupt is inhibited
1: An interrupt is generated when FE=1 or ORE=1 or NF=1 in the USARTx_ISR register.


所以一直返回的没有出发,,我的想法是使用USART_GetFlagStatus()函数来解决。。

问题主要是:ORE标志可以由两个中断使能位来控制中断。。
沙发
amanda_s| | 2015-5-25 13:57 | 只看该作者
不是很理解你的意思。
ORE标志可以在RXNEIE和EIE两个任何一个中断使能的情况下触发中断。
USART_GetITStatus()除了检查标志位,还检查了对应中断是否使能
USART_GetFlagStatus()只检查标志位。
看你的需要了。

使用特权

评论回复
板凳
周董| | 2015-5-25 20:52 | 只看该作者
路过!真的很无语!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

89

帖子

0

粉丝