使用DMA读取多个ADC通道工作不正常
本帖最后由 cutfall 于 2025-6-25 22:55 编辑正在尝试使用DMA方法读取多个ADC通道。我无法解读数值。
还测试了DMA和轮询方法,但没有工作。uint32_t value; HAL_ADC_Start_DMA(&hadc1, value, 2); // start adc in DMA mode
//polling method
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1, HAL_MAX_DELAY);
value= HAL_ADC_GetValue(&hadc1);
HAL_ADC_Stop(&hadc1); HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1, HAL_MAX_DELAY);
value= HAL_ADC_GetValue(&hadc1);
HAL_ADC_Stop(&hadc1);用的是DMA通道1的ADC 1。,不知道哪里配置不对
在CubeMX生成的代码中,MX_DMA_Init()应该在MX_ADC1_Init()之前调用。 DMA仅读取第一个通道数据,后续通道值不更新。 先启动DMA再启动ADC转换 DMA请求可能在ADC转换完成之前就被触发,或者DMA传输在ADC转换开始之前就开始。
页:
[1]