当前位置: 首页 > news >正文

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 工作原理

  1. 采样保持:将模拟输入电压暂时存储在采样电容上。
  2. 量化转换:将模拟电压转换为数字值,依据分辨率输出。
  3. 数据读取:通过寄存器、DMA 或中断方式读取转换结果。

🧩 三、ADC 初始化配置流程(以 STM32CubeMX 为例)

  1. 使能 ADC 时钟
  2. 配置 ADC 分辨率与采样时间
  3. 选择通道(如 PA0 = ADC_IN0)
  4. 配置触发模式(软件触发或定时器触发)
  5. 启用中断或 DMA(可选)
  6. 在主程序中启动 ADC 并读取值

本节将以 STM32F103 系列 MCU 为例,介绍如何使用 HAL 库配置 ADC 实现模拟电压采样,并通过串口(USART1)将采样值转换为电压后实时输出(Measure & Display,简称 MD 输出)。


📌 一、硬件连接

  • 模拟输入:PA1 接电压源(如电位器中间端)
  • 串口输出:PA9(TX) → USB 转串口 → 电脑串口工具查看

⚙️ 二、CubeMX 配置步骤

  1. RCC 选择 HSE 或 HSI 启动系统时钟

  2. 在这里插入图片描述
    在这里插入图片描述

  3. ADC1

    • 启用 ADC1
    • 添加通道:IN1(PA1)
    • 采样时间建议设置为 71.5 cycles 或更长
    • 在这里插入图片描述
  4. USART1

    • 设置为异步模式(Async)
    • 波特率:115200
  5. PA1 设置为 Analog 模式

  6. PA9 设置为 USART1_TX

  7. 在这里插入图片描述
    在这里插入图片描述

  8. 生成工程,选用 HAL 库 + MDK-ARM/Keil


http://www.dtcms.com/a/283490.html

相关文章:

  • Windows11怎样禁止应用开机启动
  • 评估遥感云雾浓度的无参化指标(适用于其它合成雾的场景)
  • 【JVM】内存分配与回收原则
  • leetcode 3201. 找出有效子序列的最大长度 I II
  • 演示数据库操作
  • 测试学习之——Pytest Day2
  • 《十万线段绘乾坤:Canvas离屏渲染深度剖析》
  • 低代码深度切入制造业需求的实践路径
  • 在 CentOS 8 上彻底卸载 Kubernetes(k8s)
  • 每日钉钉API探索:requestAuthCode网页应用(H5微应用)免登授权
  • 【leetcode】1422. 分割字符串的最大得分
  • 创建SprngBoot项目的四种方式
  • FreeRTOS中断管理STM32
  • 【Java】【力扣】20.有效的括号
  • 基于迁移学习的培养基配方开发方法
  • XSS-LABS的Level1-8
  • Python —— 真题三
  • NumPy 详解
  • 【static 修饰局部变量、全局变量、函数】
  • Swift6.0 - 5、基本运算符
  • 账户和组管理
  • JavaEE——死锁
  • PowerBI实现仅在需要图表时显示图表
  • 傅里叶变换算子性质证明
  • GTSuite许可管理常见问题及解决方案
  • 基于FPGA的IIC控制EEPROM读写(1)
  • Mybatis07-逆向工程
  • 《python语言程序设计》2018版第8章5题编写函数统计特定不重复字符串s2在s1中的出现次数
  • C#获取当前系统账户是否为管理员账户
  • 资源利用率提升50%:Serverless 驱动国诚投顾打造智能投顾新范式