OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2346|回复: 8

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

[复制链接]

20

主题

56

帖子

0

精华

初级会员

Rank: 2

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

最佳答案

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

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

使用道具 举报

20

主题

56

帖子

0

精华

初级会员

Rank: 2

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

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

使用道具 举报

20

主题

56

帖子

0

精华

初级会员

Rank: 2

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

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

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

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

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

回复

使用道具 举报

20

主题

56

帖子

0

精华

初级会员

Rank: 2

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

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

使用道具 举报

20

主题

56

帖子

0

精华

初级会员

Rank: 2

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

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

使用道具 举报

20

主题

56

帖子

0

精华

初级会员

Rank: 2

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

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

使用道具 举报

20

主题

56

帖子

0

精华

初级会员

Rank: 2

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

还是没用。。。
回复

使用道具 举报

20

主题

56

帖子

0

精华

初级会员

Rank: 2

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

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-13 15:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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