打印
[开发板]

串口中断和定时中断,外部中断在一起如何调用?(感谢函数与积分同学的热情解答)

[复制链接]
319|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
duo点|  楼主 | 2023-3-16 11:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当系统有个定时中断。
比如定时采集温度值,然后通过串口发送到上位机。这样程序里要用到定时中断和串口中断
比如定时1s采样一次。那么是1s内调用串口中断。还是1s外再调用

如果是1s后才允许用串口中断。是不是就不是1s定时采样了?那也就是说,执行1s以后。再调用串口接收中断了。就会不准。接收数据也要时间的哈。比如上位机向下位机写入一帧数据,24个字节。(接收中断)。波特率9600. 那么24*8/9600=20ms

也就是说,处理了定时中断后,再处理的串口中断
时间上:实际是定时+串口


如果是1s内,那么定时中断内嵌套串口中断?

不清楚,串口接收中断究竟用于定时中断内,还是外。


当然,定时中断内只是设定个标志位,具体运算程序还是在主循环里做


担心有无这种情况出现:


上位机发来数据,不收就会丢。计时被中断,就会错过。

唯一一个,就是发命令时候正想翻转输出脚时候,来了串口中断。。。

使用特权

评论回复
沙发
pssyx| | 2023-3-20 09:35 | 只看该作者
温度是一个惯性比较大的参数,既然能间隔1s采样,就不必在意串口中断的开销,只要保证接收到PC指令时,及时上传当前/历史温度值即可。简单来说,串口中断的优先级应该高于定时器中断优先级。

使用特权

评论回复
板凳
tpgf| | 2023-4-13 10:02 | 只看该作者
定时中断和串口中断肯定是有一个先后顺序的啊

使用特权

评论回复
地板
heimaojingzhang| | 2023-4-13 13:08 | 只看该作者
按照我的理解 应该是定时中断来了之后才发布采集的命令啊

使用特权

评论回复
5
keaibukelian| | 2023-4-13 14:29 | 只看该作者
不存在一起调用的情况啊 你这个是有时序关系的

使用特权

评论回复
6
paotangsan| | 2023-4-13 15:09 | 只看该作者
如果存在一起调用的情况那么就得区分一下优先级别了

使用特权

评论回复
7
renzheshengui| | 2023-4-13 16:03 | 只看该作者
楼主的这个定时中断是上位机给的 还是单片机自己定时的啊

使用特权

评论回复
8
wakayi| | 2023-4-13 16:33 | 只看该作者
定时器中断了  然后呢 向上位机发送指令?然后再接收指令吗?

使用特权

评论回复
9
小夏天的大西瓜| | 2023-4-15 10:14 | 只看该作者
建议楼主在捋顺一下整体思路,理论上应该都可以实现在没有冲突的前提下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

383

主题

1450

帖子

1

粉丝