From e4581b34b42ae92d043e0fc29e1d745c396bce8f Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期五, 13 十二月 2024 11:26:37 +0800 Subject: [PATCH] 串口切换逻辑编写和测试成功 --- keil/include/main/main.c | 56 +++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 43 insertions(+), 13 deletions(-) diff --git a/keil/include/main/main.c b/keil/include/main/main.c index ceb56f5..91c2dc1 100644 --- a/keil/include/main/main.c +++ b/keil/include/main/main.c @@ -66,6 +66,7 @@ #define DEBUG_MODE extern int simple_main(void); extern int temp_main(void); +void uart_change_check(uint16_t gpio_state); #define TEST_UART_POLL_MODE 0 #define TEST_UART_INTERUPT_MODE 1 #define TEST_UART_DMA_MODE 2 @@ -134,7 +135,7 @@ .flow = UART_FLOW_CONTROL_NONE, .rx_level = UART_RXFIFO_CHAR_1, .tx_level = UART_TXFIFO_EMPTY, - .baud = BAUD_115200, + .baud = BAUD_9600, #if (TEST_UART_MODE == TEST_UART_POLL_MODE) .dma_en = false, .int_rx = false, @@ -193,13 +194,13 @@ { power_low_flag=1; gps_air780_power_change(gps_power_state,0);//gps原样,关闭4G - LOG_INFO(TRACE_MODULE_APP, "电池电压低于3.3V,4G,GPS停止工作\r\n"); + //LOG_INFO(TRACE_MODULE_APP, "电池电压低于3.3V,4G,GPS停止工作\r\n"); }else{ power_low_flag=0; gps_air780_power_change(gps_power_state,1);//gps原样,开启4G - LOG_INFO(TRACE_MODULE_APP, "电池电压正常,4G,GPS,正常工作\r\n"); + //LOG_INFO(TRACE_MODULE_APP, "电池电压正常,4G,GPS,正常工作\r\n"); } - gpio_pin_set(ADC_GND_ENABLE);//在拉高 + PCA9555_Set_One_Value_Output(ADC_MINIUS,1);//拉高 // LOG_INFO(TRACE_MODULE_APP, "The voltage is %%%d \r\n",bat_percent); } //void UartInit(void) @@ -318,7 +319,8 @@ } } void MinuteTask(void) -{ gpio_pin_clr(ADC_GND_ENABLE);//拉低 +{ + PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低 adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样 } void SecondTask(void) @@ -328,8 +330,6 @@ second_count = 0; MinuteTask(); } - TagListUpdate_person_num_car(); - in_table_log(); // if(!power_low_flag) // Gps_change(); @@ -380,6 +380,7 @@ { nomove_count=0; } + uart_change_check(gpio_state); } static void sleep_timer_callback(void *dev, uint32_t time) { @@ -475,7 +476,30 @@ } - +void uart_change_check(uint16_t gpio_state) +{ + if(INPUT_5V_POSITION&gpio_state) + { + if(state5v==0) + { + state5v=1; + state5V_prase_flag=state5v; + gps_prase_flag=0;//解除gps解析 + uart1_change_from_gps_to_debug();//测试 + PCA9555_Set_One_Value_Output(MCU_A,1);//输出高电平切换为5V输入 + } + }else { + if(state5v==1) + { + g_com_map[MODBUS_MODE] = 0; + state5v=0; + state5V_prase_flag=state5v; + gps_prase_flag=1;//恢复gps解析 + uart1_change_from_debug_to_gps();//测试 + PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS + } + } +} void IdleTask(void) { // if(gpio_pin_get_val(INPUT_5V_Pin)) @@ -551,11 +575,11 @@ board_clock_run(); boot_deinit(); board_pins_config(); - board_debug_console_open(TRACE_PORT_UART1); + board_debug_console_open_baud(TRACE_PORT_UART1,BAUD_115200); // Reset reason reset_cause_get(); reset_cause_clear(); - +//注意串口一波特率改为9600了为了能和GPS通信上 // Load calibration parameters from NVM uint32_t internal_flash = (REG_READ(0x40000018) >> 17) & 0x1; uint32_t external_flash = (REG_READ(0x40010030) >> 28) & 0x3; @@ -586,10 +610,11 @@ // TCPClient_Init(); gpio_open(); - board_output_init();//配置adcGND引脚 + //board_output_init();//配置adcGND引脚 // battery_monitor_open(); // Voltage_input=battery_monitor_get(); // battery_monitor_close(); + adc_open(&usr_adc_cfg); IIC2_Init(); @@ -616,13 +641,18 @@ sleep_timer_start(__MS_TO_32K_CNT(g_com_map[COM_INTERVAL]));//测试 //sleep_timer_start(__MS_TO_32K_CNT(SLEEP_TIMER_NUM));//测试 // board_5V_input_init(voltage_input_handler); + PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低 adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样 board_acceleration_detection_init(move_handler); pca_input_detection_init(pca_handler);//pca检测输入 - // LOG_INFO(TRACE_MODULE_APP, "测试进入app"); + Uwb_init(); + OpenUWB(); + //board_4GUsart_detection_init(_4gUsart_handler); while (1) - { test4=gpio_pin_get_val(SCL_PIN); + { + uwb_app_poll(); + //test4=gpio_pin_get_val(SCL_PIN); //UWBPoll(); // if(!power_low_flag)//确认是否休眠下才开启功能 // { -- Gitblit v1.9.3