HAL库ADC采集

STM32内部ADC的参数

分辨率 :12bit
通道数 :16(外部)+2(内部)
采集模式 :single(单次模式)、continue(连续模式)、scan(扫描模式)、discontinuous(间断模式)
输入时钟 :不超过14MHz

基本使用:1s采样间隔,采集通道0的电压(轮询方式)

参考:《STM32F1用户手册 HAL与LL驱动描述》 7.2.2 How to use this Driver (ADC)

步骤

  1. 配置参数,在CubeMX上已经做好了并生成了初始化代码,此处不再赘述
  2. 调用HAL_ADC_Start()启动一次转换
  3. 调用HAL_ADC_PollForConversion()查询转换是否完成
  4. 调用HAL_ADC_GetValue()得到转换结果
  5. 调用HAL_ADC_Stop()结束并关闭ADC外设

参考代码

  1. //1.省略了配置过程
  2. while(1)
  3. {
  4. //2. 启动
  5. HAL_ADC_Start(&hadc1);
  6. //等待1s,用osDelayUntil()会更精确
  7. osDelay(1000);
  8. //3. 查询
  9. if(HAL_ADC_PollForConversion(&hadc1,1000) != HAL_OK)
  10. {
  11. Error_Handler();
  12. }
  13. //4.拿结果
  14. volt = HAL_ADC_GetValue();
  15. //5.停止
  16. HAL_ADC_Stop();
  17. }