1. STM32G431RBT6 ADC模块概述
STM32G431RBT6是STMicroelectronics推出的基于Arm Cortex-M4内核的微控制器,其内置的12位逐次逼近型ADC(模数转换器)在工业控制、传感器数据采集等领域应用广泛。这款ADC支持多达19个外部通道,最高采样率可达4Msps,并具备硬件过采样功能,能有效提升分辨率至16位。
ADC模块包含三个独立单元(ADC1/ADC2/ADC3),支持单端和差分输入模式。实际项目中,我常用ADC1的通道5(PA0)进行电压采样,因其引脚布局方便且抗干扰性能较好。特别值得注意的是,G4系列的ADC引入了硬件校准功能,上电后执行校准可使偏移误差降低至±0.5LSB以内。
2. 硬件设计要点
2.1 参考电压配置
G431的ADC支持三种参考电压方案:
- 内部1.2V基准(VREFINT)
- 外部VREF+引脚输入(推荐2.5V-3.6V)
- VDDA电源作为基准
在电池供电项目中,我倾向于使用内部基准以节省成本,但需注意温度漂移约50ppm/°C。若使用外部基准,建议在VREF+与GND间并联10μF+100nF电容组合,实测可降低噪声约30%。
2.2 输入电路设计
对于高阻抗信号源(如热电偶),必须配置缓冲电路。典型设计如下:
c复制// 推荐RC滤波参数
#define ADC_FILTER_R 1kΩ
#define ADC_FILTER_C 100nF // 截止频率1.6kHz
警告:输入电压绝对不可超过VDDA+0.3V!过压保护可在输入端串联1kΩ电阻并并联5.1V稳压管。
3. 软件配置实战
3.1 CubeMX基础配置
- 在Pinout视图中启用ADC1
- 选择通道对应的GPIO(如IN5→PA0)
- 参数设置建议:
- Clock Prescaler: PCLK/4(确保ADC时钟≤60MHz)
- Resolution: 12位
- Data Alignment: Right
- Scan Conversion Mode: Disabled(单通道时)
- Continuous Conversion: Enabled(连续采样)
