当前位置: 首页 >关注 >

STM32 ADC使用问题

来源:博客园 2023-09-08 14:25:41


(资料图)

基本信息

  • MCU:STM32F105R8T6
  • 库:HAL
  • 平台:MDK
  • 精度:12位

问题一

  • 现象:在测量的时候,发现采样值在 1023 ~ 1042 和 1279 ~ 1290 两个区间之间无法测量

  • 原因:一开始还以为是我计算方式不对,折腾了很久才发现是采样导致的,发现这个现象后,有两个猜测可能一:怀疑是放大电路的问题,出现了这样的死区,导致 MCU 无法测量

    测试方法:用万用表测量放大后的信号是有变化的,并没有这样的死区存在,说明也不是放大电路的问题

    可能二:怀疑是 MCU 的 ADC 通道损坏导致无法采集

    测试方法:使用了多个 MCU 测量也是同样的现象,基本可以排除 MCU 的 ADC 通道损坏的可能,为了排除程序功能之间的影响,使用了单独的 ADC 采样 DEMO 程序测量时,居然没有这样的现象,到这里基本可以确定了是程序的问题,经过对比程序,最后发现是 ADC 时钟没有配置,绝望了。

  • 解决办法:只需要配置 ADC 采集通道的时钟即可,程序如下所示:

问题二

  • 现象:通过采样值计算出的电压与时间的电压有 40MV 的差距

  • 原因:未知

  • 解决办法:增加 ADC 通道校准,程序如下

    /* 校准ADC */HAL_ADCEx_Calibration_Start();
相关阅读
大家还在看