我有一个通过 DMA 捕获的已知串行流格式。它有页眉和页脚字节。但有时 MCU 在流的中间开始捕获,然后同步结束,因为 DMA 正在寻找一组字节数。我读过有人使用循环缓冲区,但我一直在努力掌握这个概念。
相反,我正在考虑禁用 DMA 并在 MCU 启动时启用串行中断。然后循环遍历中断捕获的每个字节以找到起始字节。然后,一旦我找到了起始字节,就禁用串行中断捕获并启用 DMA 来接管流的捕获。
这听起来可行吗?感谢您的任何意见。
我将 STM32 HAL 库与包含 STM32 CubeMX 的新 STM32 IDE 一起使用。