请教定时器中断与串口中断优先级配置问题
答案:2 悬赏:0 手机版
解决时间 2021-04-05 18:41
- 提问者网友:记得曾经
- 2021-04-04 23:08
请教定时器中断与串口中断优先级配置问题
最佳答案
- 五星知识达人网友:渊鱼
- 2021-04-05 00:22
:可以的 51单片机的默认(此时的IP寄存器不做设置)中断优先级为: 外部中断0 > 定时/计数器0 > 外部中断1 > 定时/计数器1 > 串行中断; 但这种优先级只是逻辑上的优先级,当同时有几种中断到达时,高优先级中断会先得到服务。
全部回答
- 1楼网友:神也偏爱
- 2021-04-05 01:06
定时器中断和串口中断冲突的原因是什么? 定时多少,串口的波特率多少?
一般情况,个人觉得不至于冲突这么严重。很有可能是你在串口中断函数或者定时中断函数里做了太多的事情。以至于下一个中断来的时候,还没有跳出上一中断。
如果是这个原因,可以尝试在中断函数里只简单的赋值一些标志位。譬如,原来你的程序是在定时中断里每1秒让一个ad读一个电压,现在改成中断里设置ad_flag = 1; 然后在main函数主循环里不断查询 if(ad_flag ==1) {...//ad读一个电压;ad_flag = 0;}
用这种前后台的方式可以避免上述原因引起的中断冲突,本人以前试过,有效。希望有所帮助。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |