瀏覽代碼

Merge branch 'bugfix/temperature_get_value_negative' into 'master'

bugfix(temperature_sensor): Fix issue that get the value is negative

See merge request espressif/esp-idf!25165
morris 2 年之前
父節點
當前提交
a296532715
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      components/driver/temperature_sensor/temperature_sensor.c

+ 2 - 2
components/driver/temperature_sensor/temperature_sensor.c

@@ -215,7 +215,7 @@ static esp_err_t read_delta_t_from_efuse(void)
     return ESP_OK;
 }
 
-static float parse_temp_sensor_raw_value(uint32_t tsens_raw)
+static float parse_temp_sensor_raw_value(int16_t tsens_raw)
 {
     if (isnan(s_deltaT)) { //suggests that the value is not initialized
         read_delta_t_from_efuse();
@@ -230,7 +230,7 @@ esp_err_t temperature_sensor_get_celsius(temperature_sensor_handle_t tsens, floa
     ESP_RETURN_ON_FALSE(out_celsius != NULL, ESP_ERR_INVALID_ARG, TAG, "Celsius points to nothing");
     ESP_RETURN_ON_FALSE(tsens->fsm == TEMP_SENSOR_FSM_ENABLE, ESP_ERR_INVALID_STATE, TAG, "tsens not enabled yet");
     bool range_changed;
-    uint16_t tsens_out = temp_sensor_get_raw_value(&range_changed);
+    int16_t tsens_out = temp_sensor_get_raw_value(&range_changed);
     *out_celsius = parse_temp_sensor_raw_value(tsens_out);
 
     if (*out_celsius < TEMPERATURE_SENSOR_LL_MEASURE_MIN || *out_celsius > TEMPERATURE_SENSOR_LL_MEASURE_MAX) {