> 在 DMA 回调中使用 HAL_Delay
您需要确保 SysTick 比您在其中使用 HAL_Delay 的任何回调具有更高的优先级(数值较低)。
> 看起来我得到的价值观与现实不同。
以什么方式?
> 我正在寻求有关整个过程的建议。
HAL_Delay(3) 将等待 3-4 毫秒之间的某处。它不准确,因为它每毫秒递增一次,因此分辨率很差。您可以使用 CYCCNT 计数器来实现更准确的延迟。
一次传输很多值,而不是仅仅传输 3 个,会更有效率。如果您只关心 ADC,那么这可能并不重要。使用定时器以精确的时间间隔触发 ADC、通过 DMA 传输以及使用半完成和全完成中断进行处理将会更加高效。
高原检测将很挑剔。
> 在 DMA 回调中使用 HAL_Delay
您需要确保 SysTick 比您在其中使用 HAL_Delay 的任何回调具有更高的优先级(数值较低)。
> 看起来我得到的价值观与现实不同。
以什么方式?
> 我正在寻求有关整个过程的建议。
HAL_Delay(3) 将等待 3-4 毫秒之间的某处。它不准确,因为它每毫秒递增一次,因此分辨率很差。您可以使用 CYCCNT 计数器来实现更准确的延迟。
一次传输很多值,而不是仅仅传输 3 个,会更有效率。如果您只关心 ADC,那么这可能并不重要。使用定时器以精确的时间间隔触发 ADC、通过 DMA 传输以及使用半完成和全完成中断进行处理将会更加高效。
高原检测将很挑剔。
举报