Arduino v3.0.0 框架 ESP32 ADC校准读取 ESP-IDF v5.1

最近Arduino更新了ESP32平台的3.0预览版,使用了最新的ESP-IDF v5.1,在之前的版本中,对ADC读取数据可以通过esp_adc_cal_raw_to_voltage()函数来根据eFuse中烧录的信息进行校准,但在ESP-IDF v5.1中,这个函数被废弃了。

在新的版本中,ESP32在Arduino框架下ADC校准的方法如下:

#include "Arduino.h"
#include "esp_adc/adc_cali.h"
#include "esp_adc/adc_cali_scheme.h"

int ADC_PIN = 7;
static adc_cali_handle_t adc_handel;   
void adc_calibration_init(){
    esp_err_t ret;
    bool cali_enable = false;
    adc_cali_scheme_ver_t verf_curve = ADC_CALI_SCHEME_VER_CURVE_FITTING;
    ret = adc_cali_check_scheme(&verf_curve);
    adc_cali_curve_fitting_config_t cali_config = {ADC_UNIT_1, ADC_CHANNEL_0, ADC_ATTEN_DB_11, ADC_BITWIDTH_12};
    adc_cali_create_scheme_curve_fitting(&cali_config, &adc_handel);
} 

void setup()
{
    Serial.begin(115200);
    int raw = 0;
    int batVoltage = 0;
    for (size_t i = 0; i < 50; i++) {
        delay(1);
        raw += analogRead(ADC_PIN);
    }
    adc_calibration_init();
    adc_cali_raw_to_voltage(adc_handel, int(raw/50), &batVoltage);
    Serial.println(avolt);
}

void loop()
{delay(100);}
    
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值