esp32 adc arduino版本
葛大工程师
2026年01月20日 20:30
收录于文集
共42篇

esp32的adc引脚可以查看esp32的数据手册.

adc的各个通道

DAC 的主要特性包括: 

• 2 个 8 位 DAC 通道 

• 支持双通道的独立/同时转换 

• 可从 VDD3P3_RTC 引脚获得电压参考 

• 含有余弦波型发生器 

• 支持 DMA 功能 

• 可通过软件或 SAR ADC FSM 开始转换。更多信息,请见 SAR ADC 章节。 

• 可由 ULP 协处理器通过控制寄存器来实现完全控制。请见 ULP 协处理器章节。


arduino支持的函数

模拟量读取:

代码块
clike
自动换行
复制代码
uint16_t analogRead(uint8_t pin);


//pin GPIO pin to read analog value
//用于读取模拟值的 GPIO 引脚
//该函数将返回模拟原始值(未校准)。
复制成功

模拟读取毫伏

代码块
clike
自动换行
复制代码
uint32_t analogReadMilliVolts(uint8_t pin);
//此函数用于获取给定引脚/ADC 通道的 ADC 原始值,并将其转换为以毫伏为单位的校准结果。
//此函数将返回以毫伏为单位的模拟值(已校准)。
复制成功

设置模拟读取分辨率

代码块
clike
自动换行
复制代码
void analogReadResolution(uint8_t bits);
//所有芯片的默认值为 12 位(范围从 0 到 4095)。当设置不同的分辨率时,读取的值将移动以匹配给定的分辨率。
复制成功

设置衰减

代码块
clike
自动换行
复制代码
void analogSetAttenuation(adc_attenuation_t attenuation);
复制成功

设置特定引脚的衰减

代码块
clike
自动换行
复制代码
void analogSetPinAttenuation(uint8_t pin, adc_attenuation_t attenuation);
复制成功

设置模拟宽度

代码块
clike
自动换行
复制代码
void analogSetWidth(uint8_t bits);
复制成功

连续模式

代码块
clike
自动换行
复制代码
bool analogContinuous(const uint8_t pins[], size_t pins_count, uint32_t conversions_per_pin, uint32_t sampling_freq_hz, void (*userFunc)(void));
复制成功

连续读取

代码块
clike
自动换行
复制代码
//该函数用于将 ADC 连续数据读取到结果缓冲区。结果缓冲区是一个adc_continuous_result_t结构体

typedef struct {
    uint8_t pin;           /*!<ADC pin */
    uint8_t channel;       /*!<ADC channel */
    int avg_read_raw;      /*!<ADC average raw data */
    int avg_read_mvolts;   /*!<ADC average voltage in mV */
} adc_continuous_result_t;

bool analogContinuousRead(adc_continuous_result_t ** buffer, uint32_t timeout_ms);

复制成功

连续读取启动

代码块
clike
自动换行
复制代码
bool analogContinuousStart();
复制成功

连续读取停止

代码块
clike
自动换行
复制代码
bool analogContinuousStop();
复制成功

取消连续初始化

代码块
clike
自动换行
复制代码
bool analogContinuousDeinit();
复制成功

设置连续外设衰减

代码块
clike
自动换行
复制代码
void analogContinuousSetAtten(adc_attenuation_t attenuation);
复制成功

设置连续模拟宽度

代码块
clike
自动换行
复制代码
void analogContinuousSetWidth(uint8_t bits);
复制成功