STM32外设介绍4(ADC)
STM32外设介绍4(ADC)
在嵌入式系统开发中,ADC(Analog to Digital Converter,模数转换器) 是将模拟信号转换为数字信号的关键模块。STM32 系列微控制器集成了高性能的 ADC,广泛应用于电压采样、传感器读取、温度测量等场景。
本文将介绍 STM32 的 ADC 模块基本原理、配置流程,并以实际案例说明如何实现 MD(Measure and Display)输出,即采样并实时显示数据。
📌 一、ADC 模块简介
STM32 的 ADC 具有以下典型特性:
- 多通道输入(可达 16 通道以上)
- 支持 6~16 位分辨率(依芯片型号而定)
- 采样率高(通常可达百万次/秒)
- 支持连续转换、扫描模式、DMA传输等
- 可与内部温度传感器、电压参考等配合使用
⚙️ 二、ADC 工作原理
- 采样保持:将模拟输入电压暂时存储在采样电容上。
- 量化转换:将模拟电压转换为数字值,依据分辨率输出。
- 数据读取:通过寄存器、DMA 或中断方式读取转换结果。
🧩 三、ADC 初始化配置流程(以 STM32CubeMX 为例)
- 使能 ADC 时钟
- 配置 ADC 分辨率与采样时间
- 选择通道(如 PA0 = ADC_IN0)
- 配置触发模式(软件触发或定时器触发)
- 启用中断或 DMA(可选)
- 在主程序中启动 ADC 并读取值
本节将以 STM32F103 系列 MCU 为例,介绍如何使用 HAL 库配置 ADC 实现模拟电压采样,并通过串口(USART1)将采样值转换为电压后实时输出(Measure & Display,简称 MD 输出)。
📌 一、硬件连接
- 模拟输入:
PA1
接电压源(如电位器中间端) - 串口输出:
PA9(TX)
→ USB 转串口 → 电脑串口工具查看
⚙️ 二、CubeMX 配置步骤
-
RCC 选择 HSE 或 HSI 启动系统时钟
-
-
ADC1
- 启用 ADC1
- 添加通道:IN1(PA1)
- 采样时间建议设置为 71.5 cycles 或更长
-
USART1
- 设置为异步模式(Async)
- 波特率:115200
-
PA1 设置为 Analog 模式
-
PA9 设置为 USART1_TX
-
在这里插入图片描述
-
生成工程,选用 HAL 库 + MDK-ARM/Keil