From 348a24633d4acbd85f4707726aa837c5270b13fd Mon Sep 17 00:00:00 2001
From: chen <15335560115@163.com>
Date: 星期六, 28 六月 2025 18:07:21 +0800
Subject: [PATCH] 增加串口蓝牙协议,删除部分绑定标签删除不了未解决memmove函数参数错误

---
 keil/include/main/main.c |   85 ++++++++++++++++++++++--------------------
 1 files changed, 45 insertions(+), 40 deletions(-)

diff --git a/keil/include/main/main.c b/keil/include/main/main.c
index 6c515de..711bf90 100644
--- a/keil/include/main/main.c
+++ b/keil/include/main/main.c
@@ -151,9 +151,13 @@
     .int_tx = false,
 #endif
 };
-void uart_receive_callback(void *dev, uint32_t err_code)
+void uart0_receive_callback(void *dev, uint32_t err_code)
 {
-    uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback);
+    uart_receive(UART_ID0,m_EUART0_DMA_RXBuf,EUART0_RX_BUF_SIZE,uart0_receive_callback);
+}
+void uart1_receive_callback(void *dev, uint32_t err_code)
+{
+    uart_receive(UART_ID1,m_EUART1_DMA_RXBuf,EUART1_RX_BUF_SIZE,uart1_receive_callback);
 }
 void mcu_deep_sleep(void)
 {
@@ -295,7 +299,9 @@
 
 }
 #define BIND_COUNT_NUM 50
-uint8_t bind_flag,bind_count=BIND_COUNT_NUM;
+uint8_t bind_flag;
+int8_t bind_count=BIND_COUNT_NUM;
+extern uint8_t find_flag;
 void SecondTask(void)
 {static uint8_t second_count;
     if(second_count++>60)
@@ -308,6 +314,8 @@
 		if(bind_count--<=0)
 		{
 		bind_count=BIND_COUNT_NUM;
+		copy_taglist_to_flash();
+		sys_reset(0);			
 		bind_flag=0;
 		}
 	}
@@ -392,24 +400,20 @@
 extern uint16_t ip0,ip1,ip2,ip3,port;
 extern uint8_t gps_4g_flag;
 extern uint8_t gps_need_data_flag,gps_open_flag;
-
+extern uint16_t bind_distance,button_determinate_distance,change_by_frequency_distance;
+extern uint8_t tag_near_frequency;
 void Program_Init(void)
 {
-    Usart1ParseDataCallback = UsartParseDataHandler;//需改为默认为gps处理,UsartParseDataHandler为升级处理当调试时候改为
+    Usart1ParseDataCallback = Usart1ParseDataHandler;//需改为默认为gps处理,Usart1ParseDataHandler为升级处理当调试时候改为
+		Usart0ParseDataCallback=Usart0ParseDataHandler;
     parameter_init_anchor();//g_com_map表初始化角色默认为基站
     dev_id=g_com_map[DEV_ID];//这里不太对
     group_id=g_com_map[GROUP_ID];//组ID
-//    tag_frequency = 1000/g_com_map[COM_INTERVAL];//测距频率这个存的是测距时间
     memcpy(&disoffset,&g_com_map[DIST_OFFSET],2);
-//    g_com_map[ALARM_DISTANCE1] = 40;
-//    g_com_map[ALARM_DISTANCE2] = 40;
-    warning_distance=g_com_map[ALARM_DISTANCE1];
-    prewarning_distance=g_com_map[ALARM_DISTANCE2];
-    send_struct.warnDistence=warning_distance;
-    send_struct.alarmDistence=prewarning_distance;//更新报警距离
-    memcpy(&send_struct.gunLableId,&g_com_map[BIND_DEV_ID],2);//更新绑定ID
-    send_struct.tagId=dev_id;//更新设备ID
-
+		memcpy(&bind_distance,&g_com_map[BIND_DISTANCE],2);
+		memcpy(&button_determinate_distance,&g_com_map[DETERMINATION_DISTANCE],2);//设定开关判断距离
+		memcpy(&tag_near_frequency,&g_com_map[NERA_FREQUENCY],1);//设定附近HZ数
+		memcpy(&change_by_frequency_distance,&g_com_map[FREQUENCY_DISTANCE],2);//设定修改HZ生效默认范围
     if(g_com_map[BIND_DEV_ID]==0)
     {
         UWB_work_state = UN_BIND;
@@ -463,27 +467,28 @@
 }
 void IdleTask(void)
 {
-if(read_5v_input_pca())
-		{
-		        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
-        }
-			}
+//if(read_5v_input_pca())
+//		{
+//		        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
+//        }
+//			}
+		UART0_CheckReceive();
 		UART_CheckReceive();
 }
 void boot_deinit(void)
@@ -510,7 +515,7 @@
     board_clock_run();
     boot_deinit();
     board_pins_config();
-		board_debug_console_open_baud(TRACE_PORT_UART1,BAUD_115200);
+		board_debug_console_open_baud(TRACE_PORT_UART0,BAUD_115200);
     // Reset reason
     reset_cause_get();
     reset_cause_clear();
@@ -546,8 +551,8 @@
     //uart_open(UART_ID1, &test_uart_cfg);
    // uart1_change_from_gps_to_debug();   
     //Uart1GpsRecDebugSend();   
-    uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback);
-   
+    uart_receive(UART_ID0,m_EUART0_DMA_RXBuf,EUART0_RX_BUF_SIZE,uart0_receive_callback);
+    uart_receive(UART_ID1,m_EUART1_DMA_RXBuf,EUART1_RX_BUF_SIZE,uart1_receive_callback);
 	// Initialize low power mode
     power_init();
     sleep_timer_open(true, SLEEP_TIMER_MODE_RELOAD, sleep_timer_callback);
@@ -603,7 +608,7 @@
             trace_flush();
             lock = int_lock();            
             power_enter_power_down_mode(0);
-						uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback);
+						uart_receive(UART_ID1,m_EUART1_DMA_RXBuf,EUART1_RX_BUF_SIZE,uart1_receive_callback);
 //					test3=gpio_pin_get_val(_4G_USART_RX_Pin);
 					//LOG_INFO(TRACE_MODULE_APP, "进入休眠\r\n");
             int_unlock(lock);

--
Gitblit v1.9.3