Răsfoiți Sursa

adc_cal: fixed the assertion failure or returning wrong error code when ADC2 failed the arbitration

Issue exist since first IDF version supporting ESP32-S2.
Michael (XIAO Xufeng) 4 ani în urmă
părinte
comite
403577e3ff

+ 5 - 2
components/esp_adc_cal/esp_adc_cal_common.c

@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: 2020-2021 Espressif Systems (Shanghai) CO LTD
+ * SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD
  *
  * SPDX-License-Identifier: Apache-2.0
  */
@@ -33,6 +33,9 @@ esp_err_t esp_adc_cal_get_voltage(adc_channel_t channel,
         ESP_RETURN_ON_FALSE(channel < SOC_ADC_CHANNEL_NUM(1), ESP_ERR_INVALID_ARG, TAG, "Invalid channel");
         ret = adc2_get_raw(channel, chars->bit_width, &adc_reading);
     }
-    *voltage = esp_adc_cal_raw_to_voltage((uint32_t)adc_reading, chars);
+
+    if (ret == ESP_OK) {
+        *voltage = esp_adc_cal_raw_to_voltage((uint32_t)adc_reading, chars);
+    }
     return ret;
 }

+ 0 - 1
components/hal/CMakeLists.txt

@@ -70,7 +70,6 @@ if(NOT BOOTLOADER_BUILD)
                     "twai_hal.c"
                     "twai_hal_iram.c"
                     "aes_hal.c"
-                    "esp32s2/adc_hal.c"
                     "esp32s2/brownout_hal.c"
                     "esp32s2/cp_dma_hal.c"
                     "esp32s2/touch_sensor_hal.c"

+ 0 - 0
components/hal/esp32s2/adc_hal.c