STM32图解08|电压怎么变数字💡
🔍 GPIO只能读到高电平或低电平,但电位器、光敏电阻和摇杆输出的电压会连续变化,STM32怎么知道它们变化了多少?
💡 答案就是ADC:它能把PA0上的模拟电压,转换成0~4095之间的数字。
📌 例如在理论条件下:
- 0V,对应ADC值约0
- 1.65V,对应ADC值约2048
- 3.3V,对应ADC值约4095
⚙️ 但真正配置时,还有几个问题很容易混淆:
- 12位为什么是4096级,最大值却是4095?
- 电位器的三根线应该怎么接?
- ADC为什么不能直接使用72MHz时钟?
- 原始值怎样换算成电压?
- 读数一直为0、4095或者不断跳动,该怎么排查?
这篇以STM32F103的`PA0 / ADC1_IN0`为例,把接线、ADC时钟、校准、HAL与标准库读取流程,以及电压换算放在一起讲清楚。
记住一句话:ADC读取的是电压,不会自动知道温度、亮度或电池电量;这些物理量还要结合传感器特性继续换算。
如果你的ADC读数一直跳,先别急着加滤波,优先检查PA0是否悬空、接线是否可靠,以及参考电压是否稳定。
💬 你第一次使用ADC时,遇到的是读数为0、满量程,还是一直跳动?
单片机 单片机设计 STM32单片机 课程设计 电子信息 自动化 传感器 物联网 毕业设计





