level 1
用串口来接收消息,然后根据接收到的处理后执行对应操作.但是如果同时有多条信息过来,程序处理不过来.
2020年03月15日 04点03分
1
level 1
用中断,串口来数据就直接进中断把数据存进buff里面,之后你只要往buff里面读数据就好了,一次读多少数据你自己就可以控制了
或者用dma也行
2020年03月15日 14点03分
3
我就是开串口中断的,来消息之后是有固定格式,但是它有时候会有多台同时来.需要逐一处理,但是它处理速度太慢,有时候刚处理就又来消息了
2020年03月15日 15点03分
@爱吃胡萝卜🐯 那这个和串口就没什么关系了吧
![[黑线]](/static/emoticons/u9ed1u7ebf.png)
这应该是你处理数据消耗了CPU太多时间吧。你应该优化的是你处理数据的函数。有可能是你在处理数据的过程中,串口中断还在被频繁触发导致处理效率降低。如果允许丢包的话,你可以在处理数据的时候把中断关了。
2020年03月15日 15点03分
level 1
改成DMA中断后将串口消息存进FIFO来处理,但是出现个很奇怪的问题,两条指令,响应消息都是固定格式,但是一条能获取到数据,一条获取不到,但是下断点看到都是正常的
2020年03月17日 05点03分
6