双串口单片机串口和定时器冲突

2020-01-26 12:55发布

在使用STC12C5A60S2单片机,他有两个串口。串口二接GPS模块,GPS模块(波特率9600)会源源不断地输出数据给串口二(串口二中断函数里面接收数据进行处理),串口一将单片机处理后的数据输出到电脑,用定时器0(开启中断定时,50ms进入一次中断函数)控制串口一每隔10s输出一次数据,发现定时器0的中断老是不正常(定时10s,有时多,有时少),把GPS模块从串口二断开,串口一就每隔10s输出一次数据了。怀疑串口二源源不断地接收数据,程序大部分时间在串口二中断函数里面,导致定时器0中断函数不能正常执行,但是把定时器0的中断优先级设置为最高了,还是不管用啊,不知道有没有朋友遇到过这种情况,求指点!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
电子爱好者_MCU
1楼-- · 2020-01-26 18:53
串口是总线的形式,一个串口可以挂载多个不同的模块 不知道串口波特率发生器是用什么产生的 51单片机开多路中断会存在中断嵌套问题,因此在中断函数中 需要做相应的处理,中断优先级的设置也挺重要 慢慢分析下 应该可以找到原因的
lcw_swust
2楼-- · 2020-01-26 19:39
上程序               

一周热门 更多>