OpenEdv-开源电子网

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

串口程序中的delay_ms()问题,关于中断

[复制链接]

5

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2015-1-24
在线时间
27 小时
发表于 2017-8-31 21:23:44 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 风行 于 2017-9-2 10:22 编辑

串口实验中,利用上位机通过串口助手发送数据,发现在main函数中,如果不加delay_ms(),在发送数据后,无法进入到接收中断中,第二个图,不知道什么原因,大家有遇到这种情况的吗?后来把第二个图中while(1)中的内容打包成第1个图中的函数,不加delay_ms(),也能正常进入接收中断了,为什么呢


1.jpg
8.JPG
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2017-5-26
在线时间
76 小时
发表于 2017-8-31 21:44:14 来自手机 | 显示全部楼层
回复

使用道具 举报

10

主题

266

帖子

0

精华

高级会员

Rank: 4

积分
693
金钱
693
注册时间
2017-7-27
在线时间
98 小时
发表于 2017-8-31 22:29:09 | 显示全部楼层
把while(1)里的printf函数全部注释掉,就不会了,还不需要加delay_ms(),
原因是在执行printf函数时,就进入不了中断
回复

使用道具 举报

5

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2015-1-24
在线时间
27 小时
 楼主| 发表于 2017-9-2 10:03:37 | 显示全部楼层
huanghan 发表于 2017-8-31 22:29
把while(1)里的printf函数全部注释掉,就不会了,还不需要加delay_ms(),
原因是在执行printf函数时,就进 ...

谢谢回复啊!
试了几遍,和那个printf函数无关啊
回复

使用道具 举报

5

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2015-1-24
在线时间
27 小时
 楼主| 发表于 2017-9-2 10:14:11 | 显示全部楼层
先删了delay_ms(),不能进入接收中断,随后删了所有的printf(),还是不能进入接收中断。后来把while(1)中的内容,全部打包成一个函数,放在while(1)中,printf()还留着,没删除,只删除了delay_ms(),却能够正常进入接收中断,分散写和包成一个函数,这样有区别吗?想不通为什么,谁能给解释解释,谢谢啊
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-9-2 21:32:39 | 显示全部楼层
风行 发表于 2017-9-2 10:14
先删了delay_ms(),不能进入接收中断,随后删了所有的printf(),还是不能进入接收中断。后来把while(1)中的 ...

仿真找问题
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 14:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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