2020-02-11 10:00发布
zjipc 发表于 2016-4-12 15:35 非常感谢您,这么认真的分析以及给与合理的建议,上位机我用的是网上的,上位机发送的数据包长度我不能修 ...
最多设置5个标签!
楼主考虑的这种做法也不是不可以,只要你查询和处理DMA状态的速度比UART的发送速率块,不导致数据到了没人管就行了。
另外,也可以考虑我上面提及的【乒乓缓冲】的方法。即:
1. 开辟2块内存缓冲区A和B;
2. 让DMA将收到的UART数据先存到A;
3. 主程序可以查询DMA已经搬运了多少,如果够6个字节,就开始解析;
4. 等到DMA收完解析出来的长度后,就进行n个字节的读取解析;
5. DMA把A区填满了,就指定DMA开始把B区开始“填埋”;
6. 主程序处理完A区,跟着处理B区;
7. 然后就是A->B->A->B……这样了。
一周热门 更多>