STM32 ADC原理与驱动详解:从光敏电阻到数字转换(上) | 零基础入门STM32第六十五步

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

师从洋桃电子,杜洋老师



(图1:开发板与光敏传感器部分连接示意图)

一、ADC功能全景图解

1.1 什么是ADC?

ADC(Analog-to-Digital Converter)即模数转换器,是连接模拟世界与数字系统的桥梁。它通过将连续变化的模拟信号(如电压)转换为离散的数字值,使得微控制器能够处理真实世界的物理量。

传感器采集
数字信号
数据处理
模拟信号
ADC
微控制器
显示/控制

1.2 STM32 ADC核心特性

特性STM32F103参数
分辨率12位(0-4095)
转换时间1μs(72MHz时钟时)
输入通道16个外部通道
工作电压2.0V-3.6V(VDDA供电)
转换模式单次/连续/扫描模式
特殊功能DMA支持、看门狗触发

二、ADC工作原理深度解析

2.1 转换四步曲

模拟信号 采样保持电路 比较器 逐次逼近寄存器 输出寄存器 采样 保持 量化 编码 模拟信号 采样保持电路 比较器 逐次逼近寄存器 输出寄存器
  1. 采样:在固定时间间隔捕获输入电压
  2. 保持:冻结电压值供后续处理
  3. 量化:将电压值分割为离散等级
  4. 编码:转换为二进制数字输出

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 元件选型建议

元件参数选择作用说明
R110KΩ(与光敏暗阻匹配)分压参考电阻
光敏电阻GL5516(亮阻5-10KΩ)光照敏感元件
滤波电容0.1μF陶瓷电容消除高频干扰

四、STM32 ADC配置要点

4.1 关键寄存器概览

寄存器功能说明
ADC_CR1/CR2控制转换模式和触发源
ADC_SMPR1/2设置通道采样时间
ADC_SQR1-3配置转换序列
ADC_DR数据寄存器

4.2 配置流程

时钟使能
GPIO模式设置
ADC参数配置
校准ADC
启用ADC
启动转换

五、扩展应用指南

5.1 多通道采集方案

  • 轮询模式:依次切换通道采集
  • 扫描模式:自动完成多通道转换
  • DMA模式:解放CPU实现自动传输

5.2 精度提升技巧

  1. 添加参考电压芯片(如REF3033)
  2. 使用软件数字滤波(滑动平均法)
  3. 避免高频信号干扰(增加RC滤波)
  4. 定期进行校准操作

六、典型问题排查表

现象可能原因解决方案
读数跳动大电源噪声干扰添加去耦电容
读数始终为0通道配置错误检查GPIO映射关系
数值不随输入变化采样时间不足增大SMP寄存器值
数据溢出DMA配置错误检查缓冲区大小

七、应用场景拓展

  1. 环境监测:温湿度传感器信号采集
  2. 音频处理:麦克风模拟信号数字化
  3. 电源监控:电池电压实时检测
  4. 工业控制:压力传感器信号读取

通过本文可以全面掌握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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值