标题:
51单片机串口中断被定时中断打断怎么解决?
[打印本页]
作者:
sr861126
时间:
2023-7-11 16:37
标题:
51单片机串口中断被定时中断打断怎么解决?
stc51 开启定时器,串口中断就不能用了,怎么配置优先级
作者:
cnfloatleaf
时间:
2023-7-11 22:49
建议只用定时器中断,串口改为查询方式,注意查询时间间隔小于一个字节的发送时间。
作者:
mygreen
时间:
2023-7-12 00:46
可以参考这个经过试验证明的
https://blog.csdn.net/qq_42011552/article/details/103318349
作者:
wys91203
时间:
2023-7-12 07:45
不设置优先级时,中断中串口中断是优先级最低的,可以设置中断优先级寄存器IP中的PS=1, 串口的中断优先级就是最高的了
作者:
sr861126
时间:
2023-7-12 07:56
cnfloatleaf 发表于 2023-7-11 22:49
建议只用定时器中断,串口改为查询方式,注意查询时间间隔小于一个字节的发送时间。
不能同时用这两个中断吗?
作者:
zsyzdx
时间:
2023-7-12 09:16
定时器和串口不能都配置成定时器2,一个用定时器1 一个用定时器2就可以了,经常这样用,没有问题。
作者:
lkc8210
时间:
2023-7-12 09:31
"串口中断就不能用了"是如何不能用?
作者:
yzwzfyz
时间:
2023-7-14 17:37
本帖最后由 yzwzfyz 于 2023-7-15 09:37 编辑
串行一个字节需要几个ms(假设10ms,与波特率有关)。只要在这个期间内,能让串口得到一次中断,下载到这个字节,就可以了。
所以,比串口高级的中断服务程序(如T0,INT0……),执行时间不要超过10ms。否则串口将可能失去一个字节。
这就是中断服务程序要尽可能短的最好例子。
这是高手必备的知识点。也是编程的要领。
作者:
Y_G_G
时间:
2023-7-15 09:22
串口发送过程和接收的过程,都是不占用主程序时间的
采用定时器目的就是为了时间准确
串口采用中断就是为了不错过接收
两个事件都重要
最好的处理是:串口中断只做清除中断标志位和数据的保存,这两个事情,数据处理放在主程序中执行
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1