OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...

查看: 382|回复: 8

求助,串口中断问题,实在不明白

[复制链接]

  离线 

13

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-4-27
在线时间
17 小时
发表于 2018-5-17 00:56:38 | 显示全部楼层 |阅读模式
20金钱
如图所示,我知道读数可以自动清除 接收中断标志位,实验也成功(串口助手上每发一个数据,单片机发送sssss)
但是,如果我不读数,用清除中断位函数 清除,那么第一次 单片机发送sssss后,串口助手怎么发送数据,单片机也不会发送(感觉像是进入不了接收中断了),我实在不明白,求解释
QQ图片20180517004856.png

最佳答案

查看完整内容[请看2#楼]

过了几个月,回头来看现在的问题,发现都是 没有看技术手册的原因,还有就是对 库函数太信任。 库函数的无论是 USART_ClearFlag 还是 USART_ClearITPendingBit ,跟踪进去看都是对 SR进行操作,然而 清除RXNE需要对DR进行读写操作才能清除,所以才会出现如上问题
回复

使用道具 举报

  离线 

13

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-4-27
在线时间
17 小时
 楼主| 发表于 2018-5-17 00:56:39 | 显示全部楼层
qq455717338 发表于 2018-8-8 00:33
过了几个月,回头来看现在的问题,发现都是 没有看技术手册的原因,还有就是对 库函数太信任。

过了几个月,回头来看现在的问题,发现都是 没有看技术手册的原因,还有就是对 库函数太信任。
库函数的无论是 USART_ClearFlag 还是 USART_ClearITPendingBit ,跟踪进去看都是对 SR进行操作,然而  清除RXNE需要对DR进行读写操作才能清除,所以才会出现如上问题
回复

使用道具 举报

  离线 

13

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-4-27
在线时间
17 小时
 楼主| 发表于 2018-5-17 13:56:31 来自手机 | 显示全部楼层
求。。。。。。
回复

使用道具 举报

  离线 

51

主题

6099

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
10035
金钱
10035
注册时间
2014-4-1
在线时间
938 小时
发表于 2018-5-17 14:12:21 | 显示全部楼层

接收成功以后,会出现多个标志位,
除了中断申请标志,还有 RXNE 标志(表示接收到数据)。
你只清除中断标志,但RXNE标志依然存在。

必须读一次数据,RXNE才能清除。

回复

使用道具 举报

  离线 

13

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-4-27
在线时间
17 小时
 楼主| 发表于 2018-5-17 14:55:53 来自手机 | 显示全部楼层
正点原子公众号
xuande 发表于 2018-5-17 14:12
接收成功以后,会出现多个标志位,
除了中断申请标志,还有 RXNE 标志(表示接收到数据)。
你只清除中 ...

我用的USART_ClearFlag清楚了,还有中断标志用ITPending清除了,然后就进去不了  中断了,不知道为什么
回复

使用道具 举报

  离线 

13

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-4-27
在线时间
17 小时
 楼主| 发表于 2018-5-17 14:58:43 来自手机 | 显示全部楼层
xuande 发表于 2018-5-17 14:12
接收成功以后,会出现多个标志位,
除了中断申请标志,还有 RXNE 标志(表示接收到数据)。
你只清除中 ...

如图,中断RXNE和接受RXNE都清除了,要不然一直进入中断,要不只进入一次
IMG_20180517_142336.jpg
回复

使用道具 举报

  离线 

13

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-4-27
在线时间
17 小时
 楼主| 发表于 2018-5-17 15:15:11 来自手机 | 显示全部楼层
qq455717338 发表于 2018-5-17 14:58
如图,中断RXNE和接受RXNE都清除了,要不然一直进入中断,要不只进入一次

额,我发现我好像Clear也是写的RXNE-IT,我回去试试
回复

使用道具 举报

  离线 

13

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-4-27
在线时间
17 小时
 楼主| 发表于 2018-5-17 18:16:26 | 显示全部楼层
xuande 发表于 2018-5-17 14:12
接收成功以后,会出现多个标志位,
除了中断申请标志,还有 RXNE 标志(表示接收到数据)。
你只清除中 ...

还是没用。。。
回复

使用道具 举报

  离线 

13

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-4-27
在线时间
17 小时
 楼主| 发表于 2018-8-8 00:33:44 | 显示全部楼层
过了几个月,回头来看现在的问题,发现都是 没有看技术手册的原因,还有就是对 库函数太信任。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




关闭

必看:"原子哥”力荐上一条 /1 下一条

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-8-17 02:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */