关于stm32f0串口中断接收问题

[复制链接]
 楼主| 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 | 显示全部楼层
请问:关闭后在那里再打开呢?
xinjitmzy 发表于 2012-10-17 11:29 | 显示全部楼层
这种问题不好发现
yuxuehu_12 发表于 2012-10-17 14:08 | 显示全部楼层
这种问题很多
weikezhi 发表于 2012-10-19 14:35 | 显示全部楼层
我试了一下,f0清楚标志位是在请求寄存器里面清楚的,并不需要关闭中断。
baiyunfei.k.f 发表于 2012-12-20 14:02 | 显示全部楼层
不需要关中断,读取RDR寄存器后,RNE清除
outstanding 发表于 2014-2-9 11:19 | 显示全部楼层
cornrn 发表于 2015-1-22 10:57 | 显示全部楼层
baiyunfei.k.f 发表于 2012-12-20 14:02
不需要关中断,读取RDR寄存器后,RNE清除

明显不对,读了RDR寄存器,RDR寄存器里面还有上次的数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

23

帖子

0

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