工具与软件:
大家好、我使用 TM4C1230H6PM 来接收 UART 数据(以及其他用途)。 在我的用例中、我可能会在几秒钟内随机接收到几个字节的数据。 在其他情况下、我可以 一次性发送超过500字节的数据。
我所遇到 的问题 、与我去年提出的 蔡 国强的回答类似。 但是、它略有不同、这次我可以控制 发送器侧和接收器。
在 Tiva 端(接收器)、乒乓模式似乎是我用例中最好的 DMA 模式、我遇到的问题是我要 为 DMA 缓冲器选择的大小。
如果我选择了更小的大小、比如64字节、如果在我接收到500字节数据时正在处理一个更高优先级的中断、 那么在我能够处理 DMA 中断之前、可能会先填充我的主缓冲区和备用缓冲区。
如果我选择了更大的缓冲区、例如512字节、每次我想尽快处理3字节数据时、我都必须发送完整的512字节。 这似乎是一个巨大的浪费,使发件人发送512字节时,它实际上只需要发送 3字节。
我缺少什么吗? 是否有一种我没有想到的更好的方法?
