打印

关于stm32f0串口中断接收问题

[复制链接]
8419|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kai102910202|  楼主 | 2012-8-29 23:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在调试stm32f0的板子,用到了串口中断接收,代码是移植以前stm32f103上的,到f0上就不行了,当用串口调试工具发数据到板子时,可以进中断,但跳不出来,仔细研究了一下清中断标志位的函数,似乎有错误,判断标志的时候是RXNE,但是清除标志位的时候却没有RXNE这参数,不知道有没有人遇到这样的问题,希望能指教一下!谢谢了!
沙发
lut1lut| | 2012-8-30 11:13 | 只看该作者
USART_ClearITPendingBit(),通过寄存器Interrupt flag clear register,只能清除部分在ISR中被置位的位。TxE和RxNE的标志复位是通过写/读取USART_DR或者操作USART_REQ寄存器实现的。

使用特权

评论回复
板凳
kai102910202|  楼主 | 2012-9-6 23:05 | 只看该作者
2# lut1lut

已经搞定了,原来f0和103是不一样的,f0要要清除的不是标志位,而是要把把串口中断关闭:L

使用特权

评论回复
地板
weikezhi| | 2012-10-16 11:08 | 只看该作者
请问:关闭后在那里再打开呢?

使用特权

评论回复
5
xinjitmzy| | 2012-10-17 11:29 | 只看该作者
这种问题不好发现

使用特权

评论回复
6
yuxuehu_12| | 2012-10-17 14:08 | 只看该作者
这种问题很多

使用特权

评论回复
7
weikezhi| | 2012-10-19 14:35 | 只看该作者
我试了一下,f0清楚标志位是在请求寄存器里面清楚的,并不需要关闭中断。

使用特权

评论回复
8
baiyunfei.k.f| | 2012-12-20 14:02 | 只看该作者
不需要关中断,读取RDR寄存器后,RNE清除

使用特权

评论回复
9
outstanding| | 2014-2-9 11:19 | 只看该作者

使用特权

评论回复
10
cornrn| | 2015-1-22 10:57 | 只看该作者
baiyunfei.k.f 发表于 2012-12-20 14:02
不需要关中断,读取RDR寄存器后,RNE清除

明显不对,读了RDR寄存器,RDR寄存器里面还有上次的数

使用特权

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

本版积分规则

2

主题

23

帖子

0

粉丝