STM32 DMA数据丢失

STM32 DMA数据丢失

💡 原文中文,约1200字,阅读约需3分钟。
📝

内容提要

在Bidir-DSHOT中,STM32的DMA数据丢失问题较为常见,首次DMA传输时可能丢失一个bit,影响电调识别。为解决此问题,提出两种方案:一是传输前发送占位符,二是调整DMA与Timer的启动顺序,确保无时间间隙。经过测试,DMA数据丢失情况基本消失。

🎯

关键要点

  • STM32的DMA数据丢失问题较为常见,首次DMA传输时可能丢失一个bit。
  • DMA数据丢失会影响电调识别,导致Telemetry无法返回。
  • 方案一:在传输前发送占位符,确保首bit出错出现在无用地方。
  • 方案二:调整DMA与Timer的启动顺序,避免时间间隙导致数据丢失。
  • 经过测试,DMA数据丢失情况基本消失。

延伸问答

STM32的DMA数据丢失问题是什么原因导致的?

DMA数据丢失主要是由于首次DMA传输时可能丢失一个bit,影响电调识别。

如何解决STM32的DMA数据丢失问题?

可以通过发送占位符或调整DMA与Timer的启动顺序来解决DMA数据丢失问题。

发送占位符的方案是如何工作的?

在DMA传输开始前发送几个高电平的占位符,确保首bit出错出现在无用地方,不影响后续识别。

调整DMA与Timer启动顺序的方案有什么效果?

通过确保DMA在Timer启动前先启动,可以避免时间间隙,从而基本消除DMA数据丢失情况。

DMA数据丢失对电调识别有什么影响?

DMA数据丢失会导致电调无法正确识别,从而影响Telemetry的返回。

在Bidir-DSHOT中,DMA数据丢失的现象是什么?

在Bidir-DSHOT中,DMA数据丢失表现为首次传输时输出错误的bit,后续数据正常。

➡️

继续阅读