当前位置:   article > 正文

STM32 HAL ADC+DMA_hal adc dma

hal adc dma

选PA2,PA3,开启扫描模式,连续转换,关闭间断

通道选择,不配置则只会转换一个通道。使用软件触发

 若是不用DMA中断,在NVIC中关闭中断,再在adc中的NVIC里去掉DMA中断

 选择一个字节

 必须使用uint32_t

  1. /* USER CODE BEGIN 1 */
  2. uint32_t AdcBuf[2]={0};//DMA 选用一个字节,则必须使用uint32_t
  3. uint8_t i;
  4. /* USER CODE END 1 */

在main函数中加入adc校准与开启DMA

需注意,低版本的cubemx中是先初始化ADC,再初始化DMA,要改成先DMA再ADC

  1. /* USER CODE BEGIN 2 */
  2. HAL_ADCEx_Calibration_Start(&hadc1);
  3. HAL_ADC_Start_DMA(&hadc1, (uint32_t *)AdcBuf, 2);
  4. /* USER CODE END 2 */

 在while中使用串口将adc电压打印出来

  1. while (1)
  2. {
  3. for(i=2;i<4;i++)
  4. {
  5. printf("PA%d: %.4fV\r\n",i,AdcBuf[i-2]*3.3/4096);
  6. }
  7. HAL_Delay(1000);
  8. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/753045
推荐阅读
相关标签
  

闽ICP备14008679号