From c0c1ff032edd95fb1c8becf9dab14d6652b8ea1f Mon Sep 17 00:00:00 2001
From: chen <15335560115@163.com>
Date: 星期五, 30 五月 2025 16:22:20 +0800
Subject: [PATCH] 工装测试底板发货V1.0版本,增加默认g_com表组为150,按键按下后3s会重置标志位,避免重复启动免布线测功率模式

---
 keil/include/main/main.c |   43 +++++++++++++++++++++++++++++++++++++------
 1 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/keil/include/main/main.c b/keil/include/main/main.c
index 52a6fa0..deb79d8 100644
--- a/keil/include/main/main.c
+++ b/keil/include/main/main.c
@@ -67,6 +67,7 @@
 #define DEBUG_MODE
 extern int simple_main(void);
 extern int temp_main(void);
+void UserKeyState_change(void);
 void uart_change_check(uint16_t gpio_state);
 #define TEST_UART_POLL_MODE 0
 #define TEST_UART_INTERUPT_MODE 1
@@ -249,6 +250,7 @@
 //     {
 //       keystarttime3 =  HIDO_TimerGetTick(); 
 //     }
+	UserKeyState_change();
 } 
 void PowerTask(void)
 {
@@ -313,6 +315,7 @@
 {
 	voltage_Task();
 }
+uint8_t fang_dou_flag=0;
 void SecondTask(void)
 {static uint8_t second_count;
     if(second_count++>60)
@@ -331,7 +334,17 @@
 uint8_t tt=1;
 uint8_t flag_sleeptimer,flag_secondtask,secondtask_count,log_4g_enable_flag;
 uint8_t uwb_enable_flag=0;
-
+uint32_t falling_time,rising_time,press_start_time,current_time;
+bool button_pressed;
+uint8_t change_buffer_flag=0;
+// 按键状态机
+typedef enum {
+    IDLE,           // 空闲状态
+    WAIT_NEXT_RISING,        // 已按下待确认
+    WAIT_NEXT_FALLING    // 等待释放状态
+} ButtonState;
+volatile ButtonState sos_state = IDLE,temp_state;
+#define MAX_WAIT_TIME_S 3
 void check_input_change(void)
 {
 	uint16_t gpio_state;
@@ -359,15 +372,32 @@
      delaysleep_count--;
     //GPS工作逻辑
 }
-
+void UserKeyState_change(void)
+{
+	if(change_buffer_flag)
+	{
+	current_time = HIDO_TimerGetTick();
+		if(current_time-falling_time>MAX_WAIT_TIME_S)
+		{//初始化状态
+		change_buffer_flag=0;
+			current_time=0;
+			falling_time=0;
+		}
+	}
+}
 //static void move_handler(enum IO_PIN_T pin)
 //{
 //    nomove_count=0;
 //}
-uint8_t change_buffer_flag=0;
+
+
 static void gpio_change_handler(enum IO_PIN_T pin)
 {
-change_buffer_flag=1;
+		//change_buffer_flag=1;
+		falling_time = HIDO_TimerGetTick();
+    // 记录新的按下时间
+		sos_state=WAIT_NEXT_RISING;
+    change_buffer_flag = 1;
 }
 
 void _4gUsart_handler(enum IO_PIN_T pin)
@@ -418,7 +448,7 @@
     port = g_com_map[TCP_PORT];
     g_com_map[VERSION] = (1<<8)|0;
     LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id);
-    LOG_INFO(TRACE_MODULE_APP,"固件版本:4G-GPS定位手环 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff);
+    LOG_INFO(TRACE_MODULE_APP,"固件版本:MK工装测试标签 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff);
     LOG_INFO(TRACE_MODULE_APP,"服务器地址: %d.%d.%d.%d:%d.\r\n",ip0,ip1,ip2,ip3,port);
 }
 
@@ -551,9 +581,10 @@
             flag_secondtask = 0;
             SecondTask();
         }
+				
 //				PowerTask();
 ////				IMUTask();
-				//UserKeyTask();
+				UserKeyTask();
         IdleTask();
 #ifndef DEBUG_MODE
 //if(flag_sleeptimer)

--
Gitblit v1.9.3