feat(adc): support ADC single ended oneshot and continuous mode on ESP32-S31

This commit is contained in:
gaoxu
2026-05-14 16:31:29 +08:00
parent 315b6547ff
commit 03c8862a9f
40 changed files with 1315 additions and 105 deletions
@@ -352,7 +352,7 @@ ADC 连续转换模式读取的原始数据需要进一步解析才能获得可
- :cpp:member:`adc_continuous_data_t::unit`:ADC 单元(ADC_UNIT_1 或 ADC_UNIT_2)
- :cpp:member:`adc_continuous_data_t::channel`:ADC 通道号(0-9)
- :cpp:member:`adc_continuous_data_t::raw_data`:ADC 原始数据值(0-4095,12位分辨率)
- :cpp:member:`adc_continuous_data_t::raw_data`:ADC 原始数据值
- :cpp:member:`adc_continuous_data_t::valid`:数据是否有效
读取并解析 ADC 数据
@@ -389,6 +389,7 @@ ADC 连续转换模式读取的原始数据需要进一步解析才能获得可
- 一个 ADC 单元一次只能运行一种操作模式,即连续模式或单次模式。:cpp:func:`adc_continuous_start` 提供了保护措施。
:not esp32s31: - 随机数生成器 (RNG) 以 ADC 为输入源。使用 ADC 连续转换模式驱动从 RNG 生成随机数时,随机性会减弱。
:SOC_ADC_DIFF_SUPPORTED: - 在单端模式下,如果使用 N 端通道作为输入接口,其原始数据极性是反向的。输入电压范围为 -2 V ~ 2 V 时,N 端 raw 值为 4393~0。请使用 ADC 校准 API。
:esp32 or esp32s2: - Wi-Fi 也使用 ADC2,:cpp:func:`adc_continuous_start` 提供了 Wi-Fi 驱动和 ADC 连续转换模式驱动之间的保护。
:esp32: - ADC 连续转换模式驱动使用 I2S0 外设作为硬件 DMA FIFO。因此,如果 I2S0 已在使用中,:cpp:func:`adc_continuous_new_handle` 将返回 :c:macro:`ESP_ERR_NOT_FOUND`。
:esp32: - ESP32 DevKitC:由于存在外部自动烧录电路,GPIO 0 不能用于 ADC 连续转换模式。