这是主循环函数
while(1)
{
比如滴答定时器中断延时1s;
串口解析函数;这里只是解析函数,不是串口中断接受函数
}
串口中断优先级肯定大于滴答定时器中断
现在通过触摸屏控制小车,触摸前进按钮一下松开,是两个指令,按下前进,松开停止,但是加延时后,停止命令就接收不到了,这是为啥
两个方法:
1、干掉延时1S延时,加快while(1)扫描轮询速度。
你可以想办法在延时1S函数里面加一些状态标志位。等待1S的时候,不要死等,先跳出来,下一次时间到了在执行延时后的类容。
2、串口解析函数里面的接收和解析分开。
串口接收采用中断的方式,数据保存到数组里面,不解析;while1里面只需要解析,然后执行串口的命令。需要将接收和解析分开。可以参考这个文章:https://www.icxbk.com/article/detail?aid=866