From 961c1174bbf1aaae5fa2f672806ed4eaf2f917be Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期三, 05 二月 2025 15:45:10 +0800
Subject: [PATCH] 串口传输协议加上一位指令类型

---
 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