gpt4 book ai didi

c - STM32 ADC DMA。当 MCU 被告知 ADC 结束时?

转载 作者:行者123 更新时间:2023-12-04 10:20:30 26 4
gpt4 key购买 nike

我将 ADC 与 DMA(STM32F4,ide STM32CubeIDE)一起使用,我认为我了解它是如何工作的,但仍然有一个难题。根据我的理解,MCU 仅在 DMA 传输完成时调用,基本上 MCU 在 DMA ADC 完成时进入此功能

void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)



那正确吗?

所以如果这是真的,我有下一个困境:例如 adc_clock 是 10MHz,采样时间是 480 adc_cycles,12 位 adc 分辨率。 adc_sample_period = 1/10Mhz * (480 + 12 + 3) = 49.5uS。这意味着 MCU 将每 49.5uS 进入 HAL_ADC_ConvCpltCallback() ???在我看来,这是很难密集的,尤其是在更大的项目中。有没有人知道如何解决这个“问题”?我想例如每 1mS 读取一次 ADC 结果,但也想将 DMA 实现到 ADC 中。欢迎任何想法

最佳答案

阅读 uC 文档 - 不要从“ 魔法 ” HAL 函数开始。

ADC 转换之间的 1ms 周期绝对算不上什么。我有许多项目使用双重或三重 ADC 模式,结果采样率为 18MSPS。

一般来说,如果你想要糟糕、缓慢、低效和“偶然”工作的代码 - 使用 HAL。否则,请学习您的硬件并改用寄存器。

关于c - STM32 ADC DMA。当 MCU 被告知 ADC 结束时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60884887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com