永发信息网

请教定时器中断与串口中断优先级配置问题

答案: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;} 用这种前后台的方式可以避免上述原因引起的中断冲突,本人以前试过,有效。希望有所帮助。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯