From bb14f348f2eb7527ac33e4f12e17bd726c42859a Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期五, 28 二月 2025 18:16:46 +0800 Subject: [PATCH] 增加按键宏定义但按键第二行到第四行按下无响应 --- keil/include/main/main.c | 425 ++++++++++++++++++++++++++++++++-------------------- 1 files changed, 258 insertions(+), 167 deletions(-) diff --git a/keil/include/main/main.c b/keil/include/main/main.c index 1784f47..8053145 100644 --- a/keil/include/main/main.c +++ b/keil/include/main/main.c @@ -76,7 +76,22 @@ #define WARING_LIMIT_TIME 10 #define UPDATE_TIME 10 - +#define GREEN 1 +#define UP_TOWARD 2 +#define DOWN_TOWARD 3 +#define RED 4 +#define BRT 5 +#define SAVE 6 +#define STEP 7 +#define SCAN 8 +#define WIN 9 +#define TXP 10 +#define SFT_D 11 +#define O 12 +#define VOX 13 +#define SQL 14 +#define ROGER 15 +#define KEY 16 extern uint8_t mUsartReceivePack[100]; extern uint8_t mUsart2ReceivePack[150]; extern uint8_t state5V_prase_flag,gps_prase_flag; @@ -257,53 +272,54 @@ } uint8_t link_error_time; void SecondTask(void) -{static uint8_t second_count; +{ + static uint8_t second_count; if(second_count++>60) { second_count = 0; MinuteTask(); } - if(!power_low_flag) - {Gps_change(); - MotorPoll(); - }else{ - gps_power_state=0;//关闭GPS - update_led_power_state(); - //初始化GPS计数数据 - gps_need_data_flag=1; - gps_wait_count2=0; - gps_wait_count=0; - } +// if(!power_low_flag) +// {Gps_change(); +// MotorPoll(); +// }else{ +// gps_power_state=0;//关闭GPS +// update_led_power_state(); +// //初始化GPS计数数据 +// gps_need_data_flag=1; +// gps_wait_count2=0; +// gps_wait_count=0; +// } - //UWB状态检测 -if(!power_low_flag)//低供电下不需要检测重连 - { - if(IfTCPConnected()) - { -// link_error_time=0; - TCP_reconnect_timer =0; - flag_TCP_reconnectting = 0; - } else { - if(TCP_reconnect_timer<30)//如果TCP没有连接,每隔10分钟尝试连接30秒 - { - flag_TCP_reconnectting = 1; - } else { - //flag_TCP_reconnectting = 0; - sys_reset(4);//重连不上就复位 - } - if(TCP_reconnect_timer++>600) - { - TCP_reconnect_timer = 0; - } +// //UWB状态检测 +//if(!power_low_flag)//低供电下不需要检测重连 +// { +// if(IfTCPConnected()) +// { +//// link_error_time=0; +// TCP_reconnect_timer =0; +// flag_TCP_reconnectting = 0; +// } else { +// if(TCP_reconnect_timer<30)//如果TCP没有连接,每隔10分钟尝试连接30秒 +// { +// flag_TCP_reconnectting = 1; +// } else { +// //flag_TCP_reconnectting = 0; +// sys_reset(4);//重连不上就复位 +// } +// if(TCP_reconnect_timer++>600) +// { +// TCP_reconnect_timer = 0; +// } - } - } - HIDO_TimerTick(); - if(nomove_count<=g_com_map[NOMOVESLEEP_TIME])//防止溢出 - nomove_count++; - else{ - nomove_count=g_com_map[NOMOVESLEEP_TIME]+1; - } +// } +// } +// HIDO_TimerTick(); +// if(nomove_count<=g_com_map[NOMOVESLEEP_TIME])//防止溢出 +// nomove_count++; +// else{ +// nomove_count=g_com_map[NOMOVESLEEP_TIME]+1; +// } } uint8_t tt=1; uint8_t flag_sleeptimer,flag_secondtask,secondtask_count,log_4g_enable_flag; @@ -384,7 +400,203 @@ } - +uint8_t key_num; + void board_key_scan(uint8_t *key) + { + uint8_t key_down_flag=0; + //第一行拉低做检测 + gpio_pin_clr(CN1); + gpio_pin_set(CN2); + gpio_pin_set(CN3); + gpio_pin_set(CN4); + if(!gpio_pin_get_val(COM1)||!gpio_pin_get_val(COM2)||!gpio_pin_get_val(COM3)||!gpio_pin_get_val(COM4)) + { + if(!gpio_pin_get_val(COM1)) + { + key_down_flag=1; + *key=GREEN; + while(!gpio_pin_get_val(COM1)); + }else if(!gpio_pin_get_val(COM2)) + { + key_down_flag=1; + *key=UP_TOWARD; + while(!gpio_pin_get_val(COM2)); + }else if (!gpio_pin_get_val(COM3)) + { + key_down_flag=1; + *key=DOWN_TOWARD; + while(!gpio_pin_get_val(COM3)); + }else if (!gpio_pin_get_val(COM4)) + { + key_down_flag=1; + *key=RED; + while(!gpio_pin_get_val(COM4)); + }else{ + key_down_flag=0; + gpio_pin_set(CN1); + gpio_pin_set(CN2); + gpio_pin_set(CN3); + gpio_pin_set(CN4); + } + //第二行拉低做检测 + gpio_pin_set(CN1); + gpio_pin_clr(CN2); + gpio_pin_set(CN3); + gpio_pin_set(CN4); + if(!gpio_pin_get_val(COM1)) + { + key_down_flag=1; + *key=BRT; + while(!gpio_pin_get_val(COM1)); + }else if(!gpio_pin_get_val(COM2)) + { + key_down_flag=1; + *key=SAVE; + while(!gpio_pin_get_val(COM2)); + }else if (!gpio_pin_get_val(COM3)) + { + key_down_flag=1; + *key=STEP; + while(!gpio_pin_get_val(COM3)); + }else if (!gpio_pin_get_val(COM4)) + { + key_down_flag=1; + *key=SCAN; + while(!gpio_pin_get_val(COM4)); + }else{ + key_down_flag=0; + gpio_pin_set(CN1); + gpio_pin_set(CN2); + gpio_pin_set(CN3); + gpio_pin_set(CN4); + } + + //第三行拉低做检测 + gpio_pin_set(CN1); + gpio_pin_set(CN2); + gpio_pin_clr(CN3); + gpio_pin_set(CN4); + if(!gpio_pin_get_val(COM1)) + { + key_down_flag=1; + *key=WIN; + while(!gpio_pin_get_val(COM1)); + }else if(!gpio_pin_get_val(COM2)) + { + key_down_flag=1; + *key=TXP; + while(!gpio_pin_get_val(COM2)); + }else if (!gpio_pin_get_val(COM3)) + { + key_down_flag=1; + *key=SFT_D; + while(!gpio_pin_get_val(COM3)); + }else if (!gpio_pin_get_val(COM4)) + { + key_down_flag=1; + *key=O; + while(!gpio_pin_get_val(COM4)); + }else{ + key_down_flag=0; + gpio_pin_set(CN1); + gpio_pin_set(CN2); + gpio_pin_set(CN3); + gpio_pin_set(CN4); + } + //第四行拉低做检测 + gpio_pin_set(CN1); + gpio_pin_set(CN2); + gpio_pin_set(CN3); + gpio_pin_clr(CN4); + if(!gpio_pin_get_val(COM1)) + { + key_down_flag=1; + *key=VOX; + while(!gpio_pin_get_val(COM1)); + }else if(!gpio_pin_get_val(COM2)) + { + key_down_flag=1; + *key=SQL; + while(!gpio_pin_get_val(COM2)); + }else if (!gpio_pin_get_val(COM3)) + { + key_down_flag=1; + *key=ROGER; + while(!gpio_pin_get_val(COM3)); + }else if (!gpio_pin_get_val(COM4)) + { + key_down_flag=1; + *key=KEY; + while(!gpio_pin_get_val(COM4)); + }else{ + key_down_flag=0; + gpio_pin_set(CN1); + gpio_pin_set(CN2); + gpio_pin_set(CN3); + gpio_pin_set(CN4); + } + } + } + +void board_key_message(uint8_t *key) +{ + switch(*key){ + case 0: + + break; + case 1: + + break; + + case 2: + + break; + + case 3: + + break; + case 4: + + break; + case 5: + + break; + case 6: + + break; + case 7: + + break; + case 8: + + break; + case 9: + + break; + case 10: + + break; + case 11: + + break; + case 12: + + break; + case 13: + + break; + case 14: + + break; + case 15: + + break; + case 16: + + break; +} + +} void IdleTask(void) { // if(gpio_pin_get_val(INPUT_5V_Pin)) @@ -413,6 +625,8 @@ // //UartDeinit(); // } // } + board_key_scan(&key_num); + board_key_message(&key_num); UART_CheckReceive(); } void boot_deinit(void) @@ -446,130 +660,7 @@ .int_en = true, .callback = app_wdt_callback, }; - void board_key_scan(uint8_t *key) - { - uint8_t key_down_flag=0; - //第一行拉低做检测 - gpio_pin_clr(CN1); - gpio_pin_set(CN2); - gpio_pin_set(CN3); - gpio_pin_set(CN4); - if(!gpio_pin_get_val(COM1)||!gpio_pin_get_val(COM2)||!gpio_pin_get_val(COM3)||!gpio_pin_get_val(COM4)) - { - if(!gpio_pin_get_val(COM1)) - { - key_down_flag=1; - *key=1; - while(!gpio_pin_get_val(COM1)); - }else if(!gpio_pin_get_val(COM2)) - { - key_down_flag=1; - *key=2; - while(!gpio_pin_get_val(COM2)); - }else if (!gpio_pin_get_val(COM3)) - { - key_down_flag=1; - *key=3; - while(!gpio_pin_get_val(COM3)); - }else if (!gpio_pin_get_val(COM4)) - { - key_down_flag=1; - *key=4; - while(!gpio_pin_get_val(COM4)); - }else{ - key_down_flag=0; - - } - //第二行拉低做检测 - gpio_pin_set(CN1); - gpio_pin_clr(CN2); - gpio_pin_set(CN3); - gpio_pin_set(CN4); - if(!gpio_pin_get_val(COM1)) - { - key_down_flag=1; - *key=5; - while(!gpio_pin_get_val(COM1)); - }else if(!gpio_pin_get_val(COM2)) - { - key_down_flag=1; - *key=6; - while(!gpio_pin_get_val(COM2)); - }else if (!gpio_pin_get_val(COM3)) - { - key_down_flag=1; - *key=7; - while(!gpio_pin_get_val(COM3)); - }else if (!gpio_pin_get_val(COM4)) - { - key_down_flag=1; - *key=8; - while(!gpio_pin_get_val(COM4)); - }else{ - key_down_flag=0; - - } - - //第三行拉低做检测 - gpio_pin_set(CN1); - gpio_pin_set(CN2); - gpio_pin_clr(CN3); - gpio_pin_set(CN4); - if(!gpio_pin_get_val(COM1)) - { - key_down_flag=1; - *key=9; - while(!gpio_pin_get_val(COM1)); - }else if(!gpio_pin_get_val(COM2)) - { - key_down_flag=1; - *key=10; - while(!gpio_pin_get_val(COM2)); - }else if (!gpio_pin_get_val(COM3)) - { - key_down_flag=1; - *key=11; - while(!gpio_pin_get_val(COM3)); - }else if (!gpio_pin_get_val(COM4)) - { - key_down_flag=1; - *key=12; - while(!gpio_pin_get_val(COM4)); - }else{ - key_down_flag=0; - - } - //第四行拉低做检测 - gpio_pin_set(CN1); - gpio_pin_set(CN2); - gpio_pin_set(CN3); - gpio_pin_clr(CN4); - if(!gpio_pin_get_val(COM1)) - { - key_down_flag=1; - *key=13; - while(!gpio_pin_get_val(COM1)); - }else if(!gpio_pin_get_val(COM2)) - { - key_down_flag=1; - *key=14; - while(!gpio_pin_get_val(COM2)); - }else if (!gpio_pin_get_val(COM3)) - { - key_down_flag=1; - *key=15; - while(!gpio_pin_get_val(COM3)); - }else if (!gpio_pin_get_val(COM4)) - { - key_down_flag=1; - *key=16; - while(!gpio_pin_get_val(COM4)); - }else{ - key_down_flag=0; - - } - } - } + int main(void) { board_clock_run(); @@ -609,7 +700,6 @@ // adc_open(&usr_adc_cfg); board_gpio_init(); - key_board_init(); // IIC2_Init(); // Accelerometer_Init(); // io_pin_mux_set(SCL_PIN, IO_FUNC0);//测试测距波形 @@ -636,6 +726,7 @@ while (1) { + // if(!power_low_flag)//确认是否休眠下才开启功能 // { // if(flag_TCP_reconnectting||IfTCPConnected()) -- Gitblit v1.9.3