我现在串口2用作485通信,串口1用作与传感器通信,读传感器数据。传感器数据是每隔一秒自动上传的,不受我控制。
串口1用timer2来设定一帧的长度,超时算一帧结束;同样用timer3来设定串口2的帧长度。
那要想着两个串口的都正常工作,是不是串口1和串口2中断的抢占优先级是一样的?不然比如串口1的优先级高,那串口2正在进行485通信的时候,串口1发生中断的话,程序进入串口1的中断了,打断了串口2那边的正常接收,有可能使得timer3超时,结束一帧的接收?
要想用定时器来判断串口接收的一帧是否结束,那定时器中断的抢占优先级需要比串口中断抢占优先级高吗?不然定时器中断能结束串口的接收中断吗?
非常感谢。这里是个很好的论坛,能学到很多东西!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
实际实验过了吗?理论结合实际。串口的速度是很慢的,如果是恰好正在接收,被别人抢占了,中断回来后,下一个数据又来了,确实会丢数据,但你可以实际测试一下,看这个恰好的概率大不大,而且系统那么多中断,响应速度是很快的,串口的波特率慢,中断就算被中断,回来可以继续接收
一周热门 更多>