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