From a12b7e38fa83eea89ec02a219bbf90ac66d8f419 Mon Sep 17 00:00:00 2001 From: laokaiyao Date: Mon, 24 Mar 2025 12:26:17 +0800 Subject: [PATCH] fix(touch): fixed touch read WDT issue on esp32 Closes https://github.com/espressif/esp-idf/issues/15629 --- components/driver/touch_sensor/esp32/touch_sensor.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/components/driver/touch_sensor/esp32/touch_sensor.c b/components/driver/touch_sensor/esp32/touch_sensor.c index 042c802cc3..831ec4ef39 100644 --- a/components/driver/touch_sensor/esp32/touch_sensor.c +++ b/components/driver/touch_sensor/esp32/touch_sensor.c @@ -362,11 +362,15 @@ static esp_err_t _touch_pad_read(touch_pad_t touch_num, uint16_t *touch_value, t if (TOUCH_FSM_MODE_SW == mode) { touch_pad_set_group_mask((1 << touch_num), (1 << touch_num), (1 << touch_num)); touch_pad_sw_start(); - while (!touch_hal_meas_is_done()) {}; + while (!touch_hal_meas_is_done()) { + vTaskDelay(1); + } *touch_value = touch_hal_read_raw_data(touch_num); touch_pad_clear_group_mask((1 << touch_num), (1 << touch_num), (1 << touch_num)); } else if (TOUCH_FSM_MODE_TIMER == mode) { - while (!touch_hal_meas_is_done()) {}; + while (!touch_hal_meas_is_done()) { + vTaskDelay(1); + } *touch_value = touch_hal_read_raw_data(touch_num); } else { res = ESP_FAIL;