主题 | 内容 | 教学目的/扩展视频 |
---|---|---|
ADC读电位器和光敏重点课程 | 电路原理,跳线设置,ADC功能分析,驱动程序,读出AD数据,读内部温度传感器数据。 | 会设置参数,能读出AD值即可。 |
师从洋桃电子,杜洋老师
📑文章目录

一、ADC功能全景图解
1.1 什么是ADC?
ADC(Analog-to-Digital Converter)即模数转换器,是连接模拟世界与数字系统的桥梁。它通过将连续变化的模拟信号(如电压)转换为离散的数字值,使得微控制器能够处理真实世界的物理量。
1.2 STM32 ADC核心特性
特性 | STM32F103参数 |
---|---|
分辨率 | 12位(0-4095) |
转换时间 | 1μs(72MHz时钟时) |
输入通道 | 16个外部通道 |
工作电压 | 2.0V-3.6V(VDDA供电) |
转换模式 | 单次/连续/扫描模式 |
特殊功能 | DMA支持、看门狗触发 |
二、ADC工作原理深度解析
2.1 转换四步曲
- 采样:在固定时间间隔捕获输入电压
- 保持:冻结电压值供后续处理
- 量化:将电压值分割为离散等级
- 编码:转换为二进制数字输出
2.2 分辨率形象化
当VDDA=3.3V时:
- 最小可检测电压 = 3.3V / 4096 ≈ 0.8mV
- 相当于用4096级刻度尺测量0-3.3V范围
三、光敏电阻应用实战
3.1 光敏电阻原理
光敏电阻的阻值随光照强度变化:
- 强光:电阻降低(可至几百Ω)
- 弱光:电阻升高(可达几MΩ)
3.2 典型分压电路
3.3V
│
R1(固定电阻)
│
ADC_IN──┤
│
R2(光敏电阻)
│
GND
输出电压公式:
Vout = 3.3V * R2 / (R1 + R2)
3.3 元件选型建议
元件 | 参数选择 | 作用说明 |
---|---|---|
R1 | 10KΩ(与光敏暗阻匹配) | 分压参考电阻 |
光敏电阻 | GL5516(亮阻5-10KΩ) | 光照敏感元件 |
滤波电容 | 0.1μF陶瓷电容 | 消除高频干扰 |
四、STM32 ADC配置要点
4.1 关键寄存器概览
寄存器 | 功能说明 |
---|---|
ADC_CR1/CR2 | 控制转换模式和触发源 |
ADC_SMPR1/2 | 设置通道采样时间 |
ADC_SQR1-3 | 配置转换序列 |
ADC_DR | 数据寄存器 |
4.2 配置流程
五、扩展应用指南
5.1 多通道采集方案
- 轮询模式:依次切换通道采集
- 扫描模式:自动完成多通道转换
- DMA模式:解放CPU实现自动传输
5.2 精度提升技巧
- 添加参考电压芯片(如REF3033)
- 使用软件数字滤波(滑动平均法)
- 避免高频信号干扰(增加RC滤波)
- 定期进行校准操作
六、典型问题排查表
现象 | 可能原因 | 解决方案 |
---|---|---|
读数跳动大 | 电源噪声干扰 | 添加去耦电容 |
读数始终为0 | 通道配置错误 | 检查GPIO映射关系 |
数值不随输入变化 | 采样时间不足 | 增大SMP寄存器值 |
数据溢出 | DMA配置错误 | 检查缓冲区大小 |
七、应用场景拓展
- 环境监测:温湿度传感器信号采集
- 音频处理:麦克风模拟信号数字化
- 电源监控:电池电压实时检测
- 工业控制:压力传感器信号读取
通过本文可以全面掌握STM32 ADC的核心原理与应用技巧。建议使用示波器观察实际信号波形,并通过修改分压电阻值探索不同测量范围。ADC作为连接物理世界的关键接口,其应用场景仅受限于您的想象力!
本文系统解析了STM32 ADC模块的工作原理与实战应用,通过结构化的原理说明和可视化图表,帮助开发者快速构建模拟信号采集系统。重点突出了光敏电阻的典型应用方案,并提供了可扩展的设计思路,为各类传感器集成奠定基础。
八、相关资源
[1] 洋桃电子B站课程-STM32入门100步
[2] STM32官方文档手册
[3] STM32F103固件函数库用户手册(中文)
[4] 光敏电阻ADC读取程序
[5] ADC原理与驱动.pptx
💬 技术讨论(请在评论区留言~)
📌 下期预告:下一期将探讨ADC驱动程序分析
重点课程
,欢迎持续关注!
点击查阅🔍往期【STM32专栏】文章
版权声明:本文采用[CC BY-NC-SA 4.0]协议,转载请注明来源
实测开发版:洋桃1号开发版(基于STM32F103C8T6)
更新日志:
- v1.0 初始版本(2025-03-13)