你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F 串口发送中断 的问题?

[复制链接]
yhyeefocus 提问时间:2016-12-14 11:36 /
串口发送中断的配置如下:
见附图,控制寄存器 1( USART_CR1)位 6 TCIE 置1;

请教:
1. 当 数据发送完成后,再没有 要发送的数据了,此时,程序 是不是 还会 再次 进入 串口发送中断程序里面 ?理由是: TCIE 为1,TC为1 ;
2. 为了避免上述 问题的出现,我的想法是,当数据发送完成后,将 控制寄存器 1( USART_CR1)位 6 TCIE 置0 。不知是否可行 ?

谢谢!

附图
无标题.png

收藏 2 评论17 发布时间:2016-12-14 11:36

举报

17个回答
cuyebiren 回答时间:2016-12-22 13:18:01
1、会再进入中断。
2、可行。如果不关闭发送中断,必须在中断函数中清除TC标志,否则会不断进入发送中断,因为TC标志为 1。
官方例程中就是在中断中关闭中断。
1.png



评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

黑皮男 回答时间:2016-12-22 18:07:43
可以通过软件清楚中断标志,如果是发送寄存器空中断打开的话,如果数据发送完成会一直进中断,这个TC中断只要清楚中断标志就不会进入中断了

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

wudianjun2001 回答时间:2016-12-22 08:16:35
你的意思是发一串数据,最后一个字节发送完成后的中断怎么处理吧,这个软件判断下啊,数据是最后一个字节中断的话,直接跳出,不执行就可以了,

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

wenyangzeng 回答时间:2016-12-22 07:28:05
本帖最后由 wenyangzeng 于 2016-12-29 10:29 编辑

把数据送DR后发送才开始,才有发送中断。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

无薪税绵 回答时间:2016-12-22 08:15:49
中断退出后,如果没有数据发送,是不会再进入中断的。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

5265325 回答时间:2016-12-22 08:47:32
斜阳 回答时间:2016-12-22 08:50:39
直接使用库函数多省事儿,不用自己做判断
myfocus-2048857 回答时间:2016-12-22 08:54:43
签到,学习        
cldym 回答时间:2016-12-22 10:04:48
签到,学习        
peter001 回答时间:2016-12-22 10:57:30
最后一个发送完毕,也会进入中断,这时要能判断出是最后一个并且避免多余的发送

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

ataudio 回答时间:2016-12-22 11:17:42
库函数完成,一步就到位了。要继续深入就去查看库函数怎么判断寄存器的。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

zbber 回答时间:2016-12-22 14:43:36
最后一个发送完毕,也会进入中断,这时要能判断出是最后一个并且避免多余的发送
小小超 回答时间:2016-12-22 14:53:14
清除中断标志后,就不会再次进入中断了。。。。
五哥1 回答时间:2016-12-22 15:25:47
签到,学习
wolfgang 回答时间:2016-12-22 16:08:38
是否开发送中断?
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版