cutfall 发表于 2025-6-25 22:54

使用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。,不知道哪里配置不对

1988020566 发表于 2025-7-2 11:10

在CubeMX生成的代码中,MX_DMA_Init()应该在MX_ADC1_Init()之前调用。

sanfuzi 发表于 2025-7-2 13:01

DMA仅读取第一个通道数据,后续通道值不更新。

wilhelmina2 发表于 2025-7-4 20:15

先启动DMA再启动ADC转换            

plsbackup 发表于 2025-7-4 20:34

DMA请求可能在ADC转换完成之前就被触发,或者DMA传输在ADC转换开始之前就开始。
页: [1]
查看完整版本: 使用DMA读取多个ADC通道工作不正常