求问这个应该怎么设计
stm32吧
全部回复
仅看楼主
level 1
用串口来接收消息,然后根据接收到的处理后执行对应操作.但是如果同时有多条信息过来,程序处理不过来.
2020年03月15日 04点03分 1
level 13
什么叫同时多条消息?
2020年03月15日 05点03分 2
我开串口接收消息,然后多个模块同时发送请求给它,它处理还没完,这时候又有新的串口消息过来又要处理
2020年03月15日 12点03分
几个模块同时发消息,如果是串口通信,整个系统都完了。正常情况下要设计成,主机联系模块,模块才能发消息,主机控制通信节奏。
2020年03月16日 03点03分
level 1
用中断,串口来数据就直接进中断把数据存进buff里面,之后你只要往buff里面读数据就好了,一次读多少数据你自己就可以控制了
或者用dma也行
2020年03月15日 14点03分 3
我就是开串口中断的,来消息之后是有固定格式,但是它有时候会有多台同时来.需要逐一处理,但是它处理速度太慢,有时候刚处理就又来消息了
2020年03月15日 15点03分
@爱吃胡萝卜🐯 那这个和串口就没什么关系了吧[黑线]这应该是你处理数据消耗了CPU太多时间吧。你应该优化的是你处理数据的函数。有可能是你在处理数据的过程中,串口中断还在被频繁触发导致处理效率降低。如果允许丢包的话,你可以在处理数据的时候把中断关了。
2020年03月15日 15点03分
level 9
进中断就关掉中断,谁也不响应,出去前再打开
2020年03月16日 04点03分 4
level 9
同时多条你应该用多个串口哇,,
2020年03月16日 04点03分 5
level 1
改成DMA中断后将串口消息存进FIFO来处理,但是出现个很奇怪的问题,两条指令,响应消息都是固定格式,但是一条能获取到数据,一条获取不到,但是下断点看到都是正常的
2020年03月17日 05点03分 6
1