小编在此感谢网上的大神,我也在此做下记录

ADC采用DMA方式读取电压,所有通道循环采集存放数组,同一通过到采集多次放入数组
假如4通道,采集6次,循环存放入数组,ADC数组总长度4*6=24;
DMA数组下标排序:bit0 ~ bit24
DMA数组存放规则:0123    0123    0123    0123    0123    0123

配置和源码如下

STM32的HAL库DMA方式,同一通过到采集多次放入数组

STM32的HAL库DMA方式,同一通过到采集多次放入数组

STM32的HAL库DMA方式,同一通过到采集多次放入数组

STM32的HAL库DMA方式,同一通过到采集多次放入数组

 

STM32的HAL库DMA方式,同一通过到采集多次放入数组

STM32的HAL库DMA方式,同一通过到采集多次放入数组

STM32的HAL库DMA方式,同一通过到采集多次放入数组

STM32的HAL库DMA方式,同一通过到采集多次放入数组

 


#define        ADC_CHANNEL        4        //通道数
#define        ADC_NUMBER        6        //一个通道存放个数
#define        ADC_LENGTH        (ADC_NUMBER * ADC_CHANNEL)

uint32_t    adcbuff[ADC_LENGTH];            //adc 通道采集数组

 HAL_ADCEx_Calibration_Start(&hadc1);        //开启ADC校准
 HAL_ADC_Start_DMA(&hadc1, (uint32_t *)adcbuff, ADC_LENGTH);    //adc启动DMA,之后直接读取数组就可以了,DMA自己转换数据

 

STM32的HAL库DMA方式,同一通过到采集多次放入数组
   

源码:https://github.com/NoSmallWhite/WL-open-projects

 

 

 

相关文章:

  • 2022-01-21
  • 2022-12-23
  • 2021-09-14
  • 2021-07-28
  • 2022-01-22
  • 2021-08-16
  • 2022-12-23
猜你喜欢
  • 2021-12-24
  • 2021-07-27
  • 2021-12-15
  • 2022-12-23
  • 2021-10-20
相关资源
相似解决方案