From 07ec3334a388beb944b6c8f254cfef41de832b22 Mon Sep 17 00:00:00 2001 From: richardclli Date: Fri, 5 Jun 2026 15:00:59 +0800 Subject: [PATCH] fix(pl18): prevent hang when pressing power button during USB charging (#7404) --- radio/src/targets/pl18/battery_driver.cpp | 8 +++++--- radio/src/targets/pl18/board.cpp | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/radio/src/targets/pl18/battery_driver.cpp b/radio/src/targets/pl18/battery_driver.cpp index 5ec4ee6df..bdd4688b9 100644 --- a/radio/src/targets/pl18/battery_driver.cpp +++ b/radio/src/targets/pl18/battery_driver.cpp @@ -443,9 +443,11 @@ void drawChargingInfo(uint16_t chargeState) { void battery_charge_end() { - chargeWindow->clear(); - delete chargeWindow; - chargeWindow = nullptr; + if (chargeWindow) { + chargeWindow->clear(); + delete chargeWindow; + chargeWindow = nullptr; + } } #define CHARGE_INFO_DURATION 5000 // ms diff --git a/radio/src/targets/pl18/board.cpp b/radio/src/targets/pl18/board.cpp index ef34fe87e..4963f5afa 100644 --- a/radio/src/targets/pl18/board.cpp +++ b/radio/src/targets/pl18/board.cpp @@ -252,6 +252,7 @@ void boardInit() if ((now - press_start) > POWER_ON_DELAY) { break; } + delay_ms(10); } else if (!isChargerActive()) { boardOff(); } else {