ESP32-C3内置有温度传感器,用于测量芯片内部温度。温度传感器模块包含一个8位Sigma-Delta型ADC和一个用于补偿温度偏移的DAC。
1、温度传感器配置
temp_sensor_config_t temp_sensor = {
.dac_offset = TSENS_DAC_L2,
.clk_div = 6,
};
temp_sensor_set_config(temp_sensor);
TSENS_DAC_L0
offset = -2,测量范围:50℃ ~ 125℃,误差<3℃
TSENS_DAC_L1
offset = -1,测量范围:20℃ ~ 100℃,误差<2℃
TSENS_DAC_L2
offset = 0,测量范围:-10℃ ~ 80℃,误差<1℃
TSENS_DAC_L3
offset = 1,测量范围:-30℃ ~ 50℃,误差<2℃
TSENS_DAC_L4
offset = 2,测量范围:-40℃ ~ 20℃,误差<3℃
TSENS_DAC_DEFAULT = TSENS_DAC_L2
2、通过调用方法temp_sensor_start()来启动温度传感器,开始温度测量。
3、获取当前温度
float tsens_out = 0.0;
temp_sensor_read_celsius(&tsens_out);
4、通过调用方法temp_sensor_stop()来关闭温度传感器,停止温度测量。
5、使用例程
#include "driver/temp_sensor.h"
void setup()
{
Serial.begin(115200);
temp_sensor_config_t temp_sensor = {
.dac_offset = TSENS_DAC_L2,
.clk_div = 6,
};
temp_sensor_set_config(temp_sensor);
temp_sensor_start();
}
void loop()
{
float tsens_out;
temp_sensor_read_celsius(&tsens_out);
Serial.printf("%f\r\n", tsens_out);
delay(500);
}