class ADCAll -- 访问所有 ADC 通道¶
ADCAll 通过单个对象暴露 MCU 上的每个 ADC 通道——既包括外部模拟输入引脚,也包括用于芯片温度、1.21 V 参考电压和 VBAT 的内部通道。它适用于在不为每个引脚实例化 ADC 的情况下监测 MCU 的供电轨和片上传感器。
示例:
import pyb
# 12-bit resolution, internal channels only (temp + VBAT + VREF).
adcall = pyb.ADCAll(12, 0x70000)
temp = adcall.read_core_temp()
vbat = adcall.read_core_vbat()
vref = adcall.read_core_vref()
vdda = adcall.read_vref()
构造函数¶
- class pyb.ADCAll(resolution: int, mask: int = 0xffffffff)¶
提供对 MCU 上每个 ADC 通道的同步访问,包括用于芯片温度、内部 1.21 V 参考电压和
VBAT的内部通道。构造此对象会将所有被掩码选中的外部 ADC 引脚切换为模拟输入模式。resolution是 ADC 转换分辨率,以位为单位(通常为8、10或12)。mask是一个 32 位位掩码,用于选择启用哪些通道;第N位启用通道N。默认为0xffffffff(所有通道)。内部通道位于第16(温度)、17(VBAT)和18(VREF)位,因此若只启用内部通道,请传入0x70000。
片上温度传感器经过出厂校准,精度约为 ±1 °C,但它测量的是芯片温度——当 MCU 处于活动状态时,该温度通常比环境温度高出数十度。仅在刚唤醒的开发板上,读数才能作为环境温度的有意义的近似值。
警告
模拟输入电压绝不能超过实际供电电压。
方法¶
- read_channel(channel: int) int¶
读取给定的 ADC 通道。外部通道(
0--15)以配置的分辨率返回未经缩放的原始值;内部通道(16--18)同样返回原始值,但下方专用的辅助函数会将它们转换为电压值。