From 2b40605dbb9622b2099f7c4c6a628e40cd17e805 Mon Sep 17 00:00:00 2001
From: chen <15335560115@163.com>
Date: 星期四, 29 五月 2025 18:11:01 +0800
Subject: [PATCH] 基本完成免布线基站测试固件,功耗升级等未测试

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

diff --git a/keil/include/main/main.c b/keil/include/main/main.c
index 9de8816..0080c8e 100644
--- a/keil/include/main/main.c
+++ b/keil/include/main/main.c
@@ -61,7 +61,7 @@
 #define TEST_UART_MODE TEST_UART_DMA_MODE
 
 #define NUM_SAMPLES 1
-#define SLEEP_START_TIME 1
+#define SLEEP_START_TIME 10
 #define FREQ_LOST_TIME 5
 #define NOTAG_FREQ  1
 #define BATTERY_GET_TIME 3600
@@ -118,7 +118,7 @@
         .callback = app_wdt_callback,
     };
 
-uint8_t state5v = 1;
+uint8_t state5v = 0;
 uint8_t bat_percent=0,g_start_send_flag=1;
 int16_t fVoltage_mv;
 uint8_t bat_percent;
@@ -133,6 +133,7 @@
 void boot_deinit(void);
 void Get_batterty_Voltage(void);
 void Calculate_battery_percent(void);
+uint8_t sleep_limit_time=10;
 static void uart_receive_callback(void *dev, uint32_t err_code)
 {		
 uart_receive(UART_ID0,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback);
@@ -149,12 +150,19 @@
 uart_close(UART_ID0);
 uart_close(UART_ID1);
 }
+uint8_t bat_flag;
 void Get_batterty_Voltage(void)
 {
 	 battery_monitor_open();
 	 fVoltage_mv=battery_monitor_get();
    battery_monitor_close();  
-	Calculate_battery_percent();
+	if(fVoltage_mv>=3200&&fVoltage_mv<=3400)
+	{
+	bat_flag=1;//正常
+	}else{
+	bat_flag=0;//不正常
+	}
+	//Calculate_battery_percent();
 }
 void Calculate_battery_percent(void)
 {
@@ -170,6 +178,7 @@
         {
             bat_percent = ((fVoltage_mv - 3000) /8);
         }
+				
 				//LOG_INFO(TRACE_MODULE_APP, "The voltage is %d ,percent is %%%d \r\n",fVoltage_mv,bat_percent);
 }
 static void sleep_timer_callback(void *dev, uint32_t time)
@@ -180,8 +189,8 @@
 	if(reboot_num>=3600)
 		NVIC_SystemReset(); //软复位回到bootloader
 		enable_sleep_count++;
-	if(enable_sleep_count==SLEEP_START_TIME){
-		
+	
+	if(enable_sleep_count==sleep_limit_time){
 		enable_sleep_count=0;
 		sleep_flag=1;
 	}
@@ -239,21 +248,25 @@
 group_id=g_com_map[GROUP_ID];
 memcpy(&dev_id ,&g_com_map[DEV_ID],2);
 tag_frequency=1000/g_com_map[COM_INTERVAL];	
-g_com_map[VERSION] = (1<<8)|11;
+g_com_map[VERSION] = (1<<8)|12;
 LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id);
 LOG_INFO(TRACE_MODULE_APP,"固件版本:UWB-免布线信标 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff);
 }
+uint8_t test1;
+extern uint8_t change_power_flag;
 void IdleTask(void)
 { UART0_CheckReceive();
+	test1=gpio_pin_get_val(INPUT_5V_Pin);
 	if(gpio_pin_get_val(INPUT_5V_Pin))
 	{
-        	
-   
 		//UART_CheckSend();
 // bat_percent=Get_Battary();
 		if(state5v==0)
 		{
 			state5v=1;
+			sleep_flag=0;
+			sleep_limit_time=30;//新增插入串口后30s不休眠
+			enable_sleep_count=0;//重新插拔可以重置时间
 		}	
 	}else{
         if(state5v==1)
@@ -277,6 +290,12 @@
 	 uart_close(UART_ID1);//解绑原来串口1
 	 uart_close(UART_ID0);//解绑原来串口0
 }
+void power_mode_start(void)
+{
+LED_PA_change();//将PA管脚改为gpio模式发射载波开启功率测试
+
+}
+
 int main(void)
 {
     board_clock_run();
@@ -338,14 +357,20 @@
 	#endif
 		//Serial0_PutString("进入app测试\r\n");
     while (1)
-    {  wdt_ping(WDT_ID0);//喂狗
+    {  
 			if(g_start_send_flag)
 			{
 			//LOG_INFO(TRACE_MODULE_APP, "测距ing");
-			
+			wdt_ping(WDT_ID0);//喂狗
 			g_start_send_flag = 0;
 			gpio_pin_set(LED_PIN);//亮
+			if(!change_power_flag)
 			TagRange();
+			if(change_power_flag)
+			{
+			power_mode_start();
+			uwb_power_init();
+			}
 			gpio_pin_clr(LED_PIN);//灭
 			IdleTask();	
 			}else{

--
Gitblit v1.9.3