class ADC -- 模数转换

ADC 类封装了单个模数转换器通道,它对引脚(或某个片上模拟通道)上的电压进行采样并返回其离散化的值。

用法示例:

from machine import ADC, Pin

adc = ADC(Pin("P6"))      # ADC channel on header pin P6 (PA5)
val = adc.read_u16()      # raw reading scaled to 0..65535

构造函数

class machine.ADC(id: int | str | Pin) ADC

为由 id 标识的模拟源构造一个 ADC 对象。可接受的形式有:

  • 整数通道编号(在 STM32 上为 0 -- 18,在其他平台上与端口相关);

  • 一个 Pin 对象,或诸如 "P6" 这样的电路板引脚字符串 -- 该引脚必须支持模拟功能;

  • 某个内部通道常量(CORE_TEMPCORE_VREFCORE_VBATVREFCORE_VDD),用于读取 MCU 的内部传感器。仅限 STM32。

方法

read_u16() int

对模拟通道采样一次,并将结果作为无符号 16 位整数(0 -- 65535)返回。低分辨率的 ADC 会被左对齐到 16 位范围内,因此与端口相关的原始分辨率被隐藏起来。

read_uv() int

对模拟通道采样并以微伏为单位返回结果。在硬件支持的情况下,读数会针对内部基准进行校准。仅限 mimxrt 端口。

常量

下列常量仅在 STM32 端口上可用;将它们作为 id 参数传入,以构造一个读取某个片上模拟传感器的 ADCread_u16() 的结果是该通道的原始 16 位读数;如需校准后的值,请使用 pyb.ADCAll 上的辅助函数。

VREF: int

外部电压基准通道。

CORE_VREF: int

内部 1.21 V(标称)电压基准通道(VREFINT)。

CORE_TEMP: int

内部芯片温度传感器通道。

CORE_VBAT: int

备用电池电压通道(VBAT)。

CORE_VDD: int

MCU 供电轨通道(VDDA)。