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

2019-08-14 04:00发布

本帖最后由 风行 于 2017-9-2 10:22 编辑

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


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
赵士亮
1楼-- · 2019-08-14 05:06
 精彩回答 2  元偷偷看……
huanghan
2楼-- · 2019-08-14 05:09
把while(1)里的printf函数全部注释掉,就不会了,还不需要加delay_ms(),
原因是在执行printf函数时,就进入不了中断
风行
3楼-- · 2019-08-14 08:24
huanghan 发表于 2017-8-31 22:29
把while(1)里的printf函数全部注释掉,就不会了,还不需要加delay_ms(),
原因是在执行printf函数时,就进 ...

谢谢回复啊!
试了几遍,和那个printf函数无关啊
风行
4楼-- · 2019-08-14 09:02
先删了delay_ms(),不能进入接收中断,随后删了所有的printf(),还是不能进入接收中断。后来把while(1)中的内容,全部打包成一个函数,放在while(1)中,printf()还留着,没删除,只删除了delay_ms(),却能够正常进入接收中断,分散写和包成一个函数,这样有区别吗?想不通为什么,谁能给解释解释,谢谢啊
正点原子
5楼-- · 2019-08-14 12:06
风行 发表于 2017-9-2 10:14
先删了delay_ms(),不能进入接收中断,随后删了所有的printf(),还是不能进入接收中断。后来把while(1)中的 ...

仿真找问题

一周热门 更多>