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/modules/hal/panchip/panplat/pan1070/bsp/peripheral/src/pan_hal_gpio.c |   47 +++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/01_SDK/modules/hal/panchip/panplat/pan1070/bsp/peripheral/src/pan_hal_gpio.c b/01_SDK/modules/hal/panchip/panplat/pan1070/bsp/peripheral/src/pan_hal_gpio.c
index 9d0d2f6..8bac104 100644
--- a/01_SDK/modules/hal/panchip/panplat/pan1070/bsp/peripheral/src/pan_hal_gpio.c
+++ b/01_SDK/modules/hal/panchip/panplat/pan1070/bsp/peripheral/src/pan_hal_gpio.c
@@ -142,6 +142,9 @@
 
     HAL_GPIO_CallbackArray[port * GPIO_PIN_MAX + bit] = intInitStruct->callbackFunc;
 
+    /* Clear int src flag of current pin before interrupt configuration flow */
+    GPIO_ClrIntFlag(GPIOx, BIT(bit));
+
     /*--------------------- GPIO Interrupt Configuration ------------------------*/
     if (intInitStruct->intMode == HAL_GPIO_INT_DISABLE)
     {
@@ -215,22 +218,58 @@
     }
 }
 
-void GPIO0_IRQHandler(void)
+__WEAK void GPIO0_IRQHandlerOverlay(void)
 {
     GPIO_IRQHandler(P0, 0, GPIO_P0_PIN_NUM);
 }
 
-void GPIO1_IRQHandler(void)
+__WEAK void GPIO1_IRQHandlerOverlay(void)
 {
     GPIO_IRQHandler(P1, 1, GPIO_P1_PIN_NUM);
 }
 
-void GPIO2_IRQHandler(void)
+__WEAK void GPIO2_IRQHandlerOverlay(void)
 {
     GPIO_IRQHandler(P2, 2, GPIO_P2_PIN_NUM);
 }
 
-void GPIO3_IRQHandler(void)
+__WEAK void GPIO3_IRQHandlerOverlay(void)
 {
     GPIO_IRQHandler(P3, 3, GPIO_P3_PIN_NUM);
 }
+
+void GPIO0_IRQHandler(void)
+{
+    PAN_IO_TIMING_TRACK_LEVEL(CONFIG_TRACK_PIN_GPIO0_IRQ, 1);
+
+    GPIO0_IRQHandlerOverlay();
+
+    PAN_IO_TIMING_TRACK_LEVEL(CONFIG_TRACK_PIN_GPIO0_IRQ, 0);
+}
+
+void GPIO1_IRQHandler(void)
+{
+    PAN_IO_TIMING_TRACK_LEVEL(CONFIG_TRACK_PIN_GPIO1_IRQ, 1);
+
+    GPIO1_IRQHandlerOverlay();
+    
+    PAN_IO_TIMING_TRACK_LEVEL(CONFIG_TRACK_PIN_GPIO1_IRQ, 0);
+}
+
+void GPIO2_IRQHandler(void)
+{
+    PAN_IO_TIMING_TRACK_LEVEL(CONFIG_TRACK_PIN_GPIO2_IRQ, 1);
+
+    GPIO2_IRQHandlerOverlay();
+
+    PAN_IO_TIMING_TRACK_LEVEL(CONFIG_TRACK_PIN_GPIO2_IRQ, 0);
+}
+
+void GPIO3_IRQHandler(void)
+{
+    PAN_IO_TIMING_TRACK_LEVEL(CONFIG_TRACK_PIN_GPIO3_IRQ, 1);
+
+    GPIO3_IRQHandlerOverlay();
+
+    PAN_IO_TIMING_TRACK_LEVEL(CONFIG_TRACK_PIN_GPIO3_IRQ, 0);
+}

--
Gitblit v1.9.3