From ae079c1fc5d990ba55714d4b3a51b19f96edaec4 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期四, 24 四月 2025 16:01:43 +0800
Subject: [PATCH] 改为中断来低电平触发发送当前扫描数据,3s内扫描不到的会退出,串口来55 AA 75 70 64 61 74 65,进入升级模式

---
 01_SDK/nimble/mcu_boot/src/signal.c |   66 ++++++++++++++++++---------------
 1 files changed, 36 insertions(+), 30 deletions(-)

diff --git a/01_SDK/nimble/mcu_boot/src/signal.c b/01_SDK/nimble/mcu_boot/src/signal.c
index 8307ed2..79362bc 100644
--- a/01_SDK/nimble/mcu_boot/src/signal.c
+++ b/01_SDK/nimble/mcu_boot/src/signal.c
@@ -1,3 +1,5 @@
+#include "soc_api.h"
+#include "app_log.h"
 #include "signal.h"
 #include "flash_manager.h"
 #include "prf_ota.h"
@@ -5,56 +7,60 @@
 
 bool sig_key1_push_down(void)
 {
-	GPIO_SetMode(P2, BIT0, GPIO_MODE_INPUT);
-	GPIO_EnablePullupPath(P2, BIT0);
-	
-	for (uint16_t i = 0; i < 1000; i++) {
-		if (P20 == 1) {
-			return false;
-		}
-	}
-	return true;
+    GPIO_SetMode(P0, BIT6, GPIO_MODE_INPUT);
+    GPIO_EnablePullupPath(P0, BIT6);
+    SYS_delay_10nop(10000);
+
+    for (uint16_t i = 0; i < 1000; i++) {
+        if (P06 == 1) {
+            return false;
+        }
+    }
+    return true;
 }
 
 bool sig_key2_push_down(void)
 {
+    GPIO_SetMode(P1, BIT2, GPIO_MODE_INPUT);
+    GPIO_EnablePullupPath(P1, BIT2);
+    SYS_delay_10nop(10000);
 
-	GPIO_SetMode(P2, BIT1, GPIO_MODE_INPUT);
-	GPIO_EnablePullupPath(P2, BIT1);
-	
-	for (uint16_t i = 0; i < 1000; i++) {
-		if (P21 == 1) {
-			return false;
-		}
-	}
-	return true;
+    for (uint16_t i = 0; i < 1000; i++) {
+        if (P12 == 1) {
+            return false;
+        }
+    }
+
+    return true;
 }
 
 bool sig_special_ram_value_detected(void)
 {
-	return false;
+    return false;
 }
 
 bool sig_ota_start_received(void)
 {
-	return panchip_prf_ota_start();
+    return panchip_prf_ota_start();
 }
 
 bool sig_back_up_is_completed_image(void)
 {
-	return fm_image_completed_check(FLASH_AREA_BACK_UP_START);
+    APP_LOG_INFO("Check valid image in App Backup Partition..\n");
+
+    return fm_image_completed_check(FLASH_AREA_BACK_UP_START);
 }
 
+/* recovery gpio status that you used to trigger signal */
 void sig_hardware_recovery(void)
 {
-	GPIO_DisablePullupPath(P2, BIT1);
-	GPIO_SetMode(P2, BIT1, GPIO_MODE_INPUT);
-	GPIO_DisableDigitalPath(P2, BIT1);
-	GPIO_DisablePullupPath(P2, BIT0);
-	GPIO_SetMode(P2, BIT0, GPIO_MODE_INPUT);
-	GPIO_DisableDigitalPath(P2, BIT0);
+    // Reset P06 (KEY1) to default state
+    GPIO_DisablePullupPath(P0, BIT6);
+    GPIO_SetMode(P0, BIT6, GPIO_MODE_INPUT);
+    GPIO_DisableDigitalPath(P0, BIT6);
 
-	/* PHY Reset */
-	CLK->IPRST0 |= (BIT3 | BIT7 | BIT8);
-	CLK->IPRST0 &= ~(BIT3 | BIT7 | BIT8);
+    // Reset P12 (KEY2) to default state
+    GPIO_DisablePullupPath(P1, BIT2);
+    GPIO_SetMode(P1, BIT2, GPIO_MODE_INPUT);
+    GPIO_DisableDigitalPath(P1, BIT2);
 }

--
Gitblit v1.9.3