STM32 ADC原理及驱动详解:从光敏电阻到数字转换(入门教程第65步)

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

师从洋桃电子,杜洋老师


📑文章目录

  • 一、ADC功能全景图解
  • 1.1 什么是ADC?
  • 1.2 STM32 ADC核心特性
  • 二、ADC工作原理深度解析
  • 2.1 转换四步曲
  • 2.2 分辨率形象化
  • 三、光敏电阻应用实战
  • 3.1 光敏电阻原理
  • 3.2 典型分压电路
  • 3.3 元件选型建议
  • 四、STM32 ADC配置要点
  • 4.1 关键寄存器概览
  • 4.2 配置流程
  • 五、扩展应用指南
  • 5.1 多通道采集方案
  • 5.2 精度提升技巧
  • 六、典型问题排查表
  • 七、应用场景拓展
  • 八、相关资源

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

    元件 参数选择 作用说明
    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 配置流程

    时钟使能

    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)
  • 作者:触角01010001

    物联沃分享整理
    物联沃-IOTWORD物联网 » STM32 ADC原理及驱动详解:从光敏电阻到数字转换(入门教程第65步)

    发表回复