STMCU小助手
发布时间:2022-6-21 17:29
|
几乎每个嵌入式应用程序中都使用的一个常见功能是 ADC 模块(模数转换器)。这些模数转换器可以从温度传感器、倾斜传感器、电流传感器、弯曲传感器等模拟传感器读取电压。现在,我们学习 如何使用 STM32F103C8 中的 ADC 读取模拟电压,我们将一个电位器连接到 STM32 Blue Pill 板,通过改变电位器阻值为ADC提供不同的电压,将读取的电压显示在 1602 LCD 上。 STM32F103C8 中的 ADC 在 STM32F103C8有 10 个通道、12 位 ADC,输入范围为 0V -3.3V。它将 0 到 3.3 伏之间的输入电压映射为 0 到 4095 之间的整数值。8 V9 x) v0 N% \; P9 W+ Z 7 K) u7 y& h0 b$ B9 \2 e; u 这里的术语 10 通道意味着有 10 个 ADC 引脚可以用来测量模拟电压。术语 12 位表示ADC 的分辨率,表示000000000000-111111111111(2^12即 4096)。这是我们 ADC 的采样步数,因此我们的 ADC 值的范围从 0 到 4095。该值将从 0 增加到4095基于每步电压值,可通过方面方式计算 ! W9 h! @, Z- _! l6 ` @ 电压 / 步数 = 参考电压 / 4096 = (3.3/4096= 8.056mV) 每单位。 模拟信号如何转换为数字格式) c, |7 m# s- h6 l 由于计算机仅存储和处理二进制/数字值(1 和 0)。因此,模拟信号(如传感器的伏特输出)必须转换为数字值以进行处理,并且转换需要准确。当在模拟输入端向 STM32 提供输入模拟电压时,模拟值被读取并存储在整数变量中. 使用以下方式将存储的模拟值(0-3.3V)转换为整数值(0-4096): + V) n; R. L5 k# M 输入电压 = (ADC 值 / ADC 分辨率) * 参考电压/ u+ y; n9 H, R& x) w5 U) S 分辨率 = 4096 参考电压 = 3.3V' K f' |( E7 G% R ( k; M ?' ]0 z5 W& b. D2 l STM32F103C8T6 中的 ADC 引脚 STM32 中有 10 个ADC引脚,从 PA0 到 PB1。 ; W; T9 Q0 ~: V7 u" A
8 m3 s6 O- r% D4 O u 电路图及说明
0 U& B$ D% L' m LCD与STM32连接0 a. f) m3 w7 A4 s! @+ i$ @
( M" O2 i. ~" @! S+ w# Y E) V4 h9 F 1602 LCD根据上表进行连接。电路中有两个电位器,第一个用于分压器,用于改变电压并为 STM32 提供模拟输入。该电位器的左侧引脚从 STM32(3.3V)获得输入正电压,右侧引脚接地,电位器的中心引脚连接到 STM32 的模拟输入引脚(PA7)。另一个电位器用于改变 LCD 显示屏的对比度。STM32 的电源由 PC的 USB 电源提供。 & T; K; X+ T" I6 `, B
对 STM32 进行编程以读取 ADC 值# f; k( |' `/ J# I0 ^ 通过 STM32 的 USB 端口将其连接到 PC 并开始使用 ARDUINO IDE 进行编程。在程序中,读取模拟值并使用该值计算电压,然后在 LCD 屏幕上显示模拟值和数字值。 # @) A# x$ L$ z: u8 ?+ D4 V
|
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:雨露均沾·逢7狂欢】之五:STM32系统时钟PLL故障排除1例
【福利三:雨露均沾·逢7狂欢】之三:AI帮我查BUG
福利三:雨露均沾·逢7狂欢】之二:STM32F407VG串口通信乱码故障的排除
基于STM32F103的I2C主从机通信
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
TFT LCD 与 FSMC 的硬件连接大容量 STM32F10xxx FSMC 接口
单片机:初学者该了解的STM32F103基础知识
2025软件工具兔哥知道
STM32之继电器模块
微信公众号
手机版