OpenEdv-开源电子网

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

stm32串口中断处理函数为什么不能写进延时函数?

[复制链接]

1

主题

2

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2019-1-26
在线时间
3 小时
发表于 2019-1-26 23:03:59 | 显示全部楼层 |阅读模式
1金钱
今天刚学串口通信,跟着正点原子视频写了一个最简单的串口中断服务函数,接受数据后再发送。我在串口中断函数里面加了一个LED闪灭的语句想作为提示,用了延时函数,结果发送出去后电脑没接收到发回来的。就很奇怪了,我弄了很久才发现得把延时函数去掉才可以成功。所以这是为什么呀?(我看了外部中断的源代码里面可以用延时函数呀)
微信图片_20190126230320.jpg

最佳答案

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

不知道你用的delay_ms是什么东东, 但根据你说情况, 就是在delay_ms执行时, cpu就不管其它任何事情(中断除外), 这时候PC发回几个字节给你, 会漏掉那是必然的, 能收到只才是奇迹呢 这类型的delay_ms真的要戒掉, 它不适合在现实的项目中存在。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2019-1-26 23:04:00 | 显示全部楼层
不知道你用的delay_ms是什么东东, 但根据你说情况, 就是在delay_ms执行时, cpu就不管其它任何事情(中断除外), 这时候PC发回几个字节给你, 会漏掉那是必然的, 能收到只才是奇迹呢
这类型的delay_ms真的要戒掉, 它不适合在现实的项目中存在。
回复

使用道具 举报

15

主题

317

帖子

0

精华

高级会员

Rank: 4

积分
863
金钱
863
注册时间
2015-2-12
在线时间
354 小时
发表于 2019-1-27 15:51:59 | 显示全部楼层
假设,你是一个切菜的机器,有菜料送来就做切菜动作。你在切菜动作过程中,加延时,即送来的菜料到达,你刀切下后延时5S,那么,你可能会错过第二个送来的菜料(假设3秒送一个菜料)。如此延续,你不会完成切菜任务。
回复

使用道具 举报

82

主题

589

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1255
金钱
1255
注册时间
2017-11-18
在线时间
296 小时
发表于 2019-1-27 16:24:31 | 显示全部楼层
我有遇到过串口过载然后进入溢出中断导致死机的问题,所以串口接收数据最好是不要有任何延时语句。
没有脑袋
回复

使用道具 举报

82

主题

589

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1255
金钱
1255
注册时间
2017-11-18
在线时间
296 小时
发表于 2019-1-27 16:25:31 | 显示全部楼层
数据还没来得及取出来,然后新的数据又过来了,这样串口就过载了然后溢出中断
没有脑袋
回复

使用道具 举报

17

主题

587

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4467
金钱
4467
注册时间
2013-6-27
在线时间
565 小时
发表于 2019-1-27 21:15:29 | 显示全部楼层
延时是不是使用定时中断计时的?
如果串口中断优先级高于延时中断计时,那么延时中断计时永远不会计时了,导致无限等待
让我们的思维驾驭在电的速度之上!
回复

使用道具 举报

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2017-6-25
在线时间
29 小时
发表于 2019-1-29 17:31:12 | 显示全部楼层
你是使用了嘀嗒定时器了吗?systick好像属于内核的操作,高于USART;有时间你可以试试用定时器做个延时试试,优先级分别高于USART,看看什么效果,记的结果发出来啊
回复

使用道具 举报

7

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
208
金钱
208
注册时间
2018-8-3
在线时间
35 小时
发表于 2019-2-13 15:47:50 | 显示全部楼层
你好像没有delay_init();
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2019-2-13 16:17:16 | 显示全部楼层
乍一看好像楼上才是正解啊
猪猪熊呢?
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2019-2-13 16:23:47 | 显示全部楼层
2ms的延时是为了避免乱帧么?  最好在发送机制做文章吧
猪猪熊呢?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-23 13:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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