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