From d8dd7c6e256bc607904ef1c1b1a36471c99db873 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期二, 21 十一月 2023 14:58:09 +0800
Subject: [PATCH] 免布线lora,调试差不多,即将加入自动跳频功能,固提交保存

---
 Src/main.c |  101 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 92 insertions(+), 9 deletions(-)

diff --git a/Src/main.c b/Src/main.c
index a142fb7..ba855ad 100644
--- a/Src/main.c
+++ b/Src/main.c
@@ -38,7 +38,7 @@
 #define NSH1 0x0001
 #define GP   0x0002
 #define FLASH_HARDWARE_VERSION_MAP		(uint32_t)0x08004F00    //硬件版本号和批次信息位置
-#define DEBUG_MODE
+//#define DEBUG_MODE
 /* USER CODE END Includes */
 
 /* Private typedef -----------------------------------------------------------*/
@@ -220,7 +220,88 @@
 	__HAL_LPTIM_COMPARE_SET(&hlptim1, lpcount);
 
 }
+
+/* 返回ch字符在sign数组中的序号 */
+int getIndexOfSigns(char ch)
+{
+    if(ch >= '0' && ch <= '9')
+    {
+        return ch - '0';
+    }
+    if(ch >= 'A' && ch <='F') 
+    {
+        return ch - 'A' + 10;
+    }
+    if(ch >= 'a' && ch <= 'f')
+    {
+        return ch - 'a' + 10;
+    }
+    return -1;
+}
+/* 十六进制数转换为十进制数 */
+long hexToDec(char *source)
+{
+    long sum = 0;
+    long t = 1;
+    int i, len;
+ 
+    len = strlen(source);
+    for(i=len-1; i>=0; i--)
+    {
+        sum += t * getIndexOfSigns(*(source + i));
+        t *= 16;
+    }  
+ 
+    return sum;
+}
+    
+u32 Loratx_frequency;
 u8 active_flag,nomovesleeptime;
+void GetLoratx_frequency(void)
+{
+if(g_com_map[NEARBASE_ID1]==0x470)
+{Loratx_frequency=470000000;}
+if(g_com_map[NEARBASE_ID1]==0x471)
+{Loratx_frequency=471000000;}
+if(g_com_map[NEARBASE_ID1]==0x472)
+{Loratx_frequency=472000000;}
+if(g_com_map[NEARBASE_ID1]==0x473)
+{Loratx_frequency=473000000;}
+if(g_com_map[NEARBASE_ID1]==0x474)
+{Loratx_frequency=474000000;}
+if(g_com_map[NEARBASE_ID1]==0x475)
+{Loratx_frequency=475000000;}
+if(g_com_map[NEARBASE_ID1]==0x476)
+{Loratx_frequency=476000000;}
+if(g_com_map[NEARBASE_ID1]==0x477)
+{Loratx_frequency=477000000;}
+if(g_com_map[NEARBASE_ID1]==0x478)
+{Loratx_frequency=478000000;}
+if(g_com_map[NEARBASE_ID1]==0x479)
+{Loratx_frequency=479000000;}
+if(g_com_map[NEARBASE_ID1]==0x480)
+{Loratx_frequency=480000000;}
+if(g_com_map[NEARBASE_ID1]==0x481)
+{Loratx_frequency=481000000;}
+if(g_com_map[NEARBASE_ID1]==0x482)
+{Loratx_frequency=482000000;}
+if(g_com_map[NEARBASE_ID1]==0x483)
+{Loratx_frequency=483000000;}
+if(g_com_map[NEARBASE_ID1]==0x484)
+{Loratx_frequency=484000000;}
+if(g_com_map[NEARBASE_ID1]==0x485)
+{Loratx_frequency=485000000;}
+if(g_com_map[NEARBASE_ID1]==0x486)
+{Loratx_frequency=486000000;}
+if(g_com_map[NEARBASE_ID1]==0x487)
+{Loratx_frequency=487000000;}
+if(g_com_map[NEARBASE_ID1]==0x488)
+{Loratx_frequency=488000000;}
+if(g_com_map[NEARBASE_ID1]==0x489)
+{Loratx_frequency=489000000;}
+if(g_com_map[NEARBASE_ID1]==0x490)
+{Loratx_frequency=490000000;}
+}
 void Program_Init(void)
 {	float temp;
 	uint16_t temp2;
@@ -247,7 +328,8 @@
     g_com_map[IMU_ENABLE] = 0;
 	imu_enable=g_com_map[IMU_ENABLE];
 	motor_enable=g_com_map[MOTOR_ENABLE];
-	
+GetLoratx_frequency();
+
 	group_id=g_com_map[GROUP_ID];
 	dev_id = g_com_map[DEV_ID];
 	slottime=ceil((double)g_com_map[MAX_REPORT_ANC_NUM]*SLOT_SCALE)+3;
@@ -483,10 +565,11 @@
   /* Initialize all configured peripherals */
   MX_GPIO_Init();
   MX_LPTIM1_Init();
+  MX_DMA_Init();
   MX_USART1_UART_Init();
   MX_SPI1_Init();
   MX_ADC_Init();
-  MX_DMA_Init();
+  
   MX_IWDG_Init();
   /* USER CODE BEGIN 2 */
 //    LED_LG_ON;
@@ -843,8 +926,8 @@
   HAL_GPIO_WritePin(GPIOB, BAT_MEAS_GND_Pin|SDA_Pin|SCL_Pin, GPIO_PIN_SET);
 
   /*Configure GPIO pin Output Level */
-  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10|LED1_G_Pin|LED1_R_Pin|RADIO_nRESET_Pin
-                          |RADIO_NSS_Pin|GPIO_PIN_7, GPIO_PIN_RESET);
+  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10|LED1_G_Pin|LED1_R_Pin|GPIO_PIN_14
+                          |RADIO_nRESET_Pin|RADIO_NSS_Pin|GPIO_PIN_7, GPIO_PIN_RESET);
 
   /*Configure GPIO pin Output Level */
   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8|DW_CTRL_Pin|LED2_G_Pin, GPIO_PIN_RESET);
@@ -881,10 +964,10 @@
   GPIO_InitStruct.Pull = GPIO_NOPULL;
   HAL_GPIO_Init(RADIO_BUSY_GPIO_Port, &GPIO_InitStruct);
 
-  /*Configure GPIO pins : PB10 LED1_G_Pin LED1_R_Pin RADIO_nRESET_Pin
-                           RADIO_NSS_Pin PB7 */
-  GPIO_InitStruct.Pin = GPIO_PIN_10|LED1_G_Pin|LED1_R_Pin|RADIO_nRESET_Pin
-                          |RADIO_NSS_Pin|GPIO_PIN_7;
+  /*Configure GPIO pins : PB10 LED1_G_Pin LED1_R_Pin PB14
+                           RADIO_nRESET_Pin RADIO_NSS_Pin PB7 */
+  GPIO_InitStruct.Pin = GPIO_PIN_10|LED1_G_Pin|LED1_R_Pin|GPIO_PIN_14
+                          |RADIO_nRESET_Pin|RADIO_NSS_Pin|GPIO_PIN_7;
   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
   GPIO_InitStruct.Pull = GPIO_NOPULL;
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;

--
Gitblit v1.9.3