From 1906f7b280eeb7a8f5dbfda96c9485fba4a74de2 Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期三, 21 二月 2024 15:14:37 +0800 Subject: [PATCH] 移植最新逻辑,能同步,能测距,能读取,能写。 --- Src/main.c | 532 +++++++++++++++++++++++++++++------------------------------ 1 files changed, 261 insertions(+), 271 deletions(-) diff --git a/Src/main.c b/Src/main.c index b6895ec..6e71ed6 100644 --- a/Src/main.c +++ b/Src/main.c @@ -36,6 +36,8 @@ #include "stdio.h" #include "delay.h" #include <stdlib.h> +#include <Lora.h> +#include "radio.h" #define NSH1 0x0001 #define GP 0x0002 #define FLASH_HARDWARE_VERSION_MAP (uint32_t)0x08004F00 //硬件版本号和批次信息位置 @@ -73,6 +75,8 @@ SPI_HandleTypeDef hspi1; +TIM_HandleTypeDef htim2; + /* USER CODE BEGIN PV */ /* USER CODE END PV */ @@ -80,13 +84,14 @@ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); static void MX_GPIO_Init(void); -static void MX_LPTIM1_Init(void); static void MX_USART1_UART_Init(void); static void MX_SPI1_Init(void); static void MX_ADC_Init(void); static void MX_DMA_Init(void); static void MX_IWDG_Init(void); +static void MX_TIM2_Init(void); static void MX_LPUART1_UART_Init(void); +static void MX_LPTIM1_Init(void); /* USER CODE BEGIN PFP */ /* USER CODE END PFP */ @@ -149,13 +154,25 @@ } uint16_t hardware_version,hardware_pici,hardware_type; uint8_t state5v = 1; +extern uint8_t du_flag; +extern uint8_t xie_flag; float motor_keeptime; void IdleTask(void) { //if(huart1.Instance->ISR&USART_ISR_FE) // { // SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader -// } +//// } +// if(du_flag==1) +// { +// du_flag=0; +// +// } +// if(xie_flag==1) +// { +// xie_flag=0; +// memcpy((uint8_t*)&g_com_map + pack_index, mUsartReceivePack, pack_datalen); +// } if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)) { @@ -170,11 +187,11 @@ } if(bat_percent>99) { -// LED_LR_OFF; - LED_LG_ON; + LED2_TR_OFF; + LED2_TB_ON; }else{ -// LED_LR_ON; - LED_LG_OFF; + LED2_TR_ON; + LED2_TB_OFF; } }else{ if(state5v==1) @@ -182,8 +199,8 @@ state5v=0; UsartDeInit(); } -// LED_LR_OFF; - LED_LG_OFF; + LED2_TR_OFF; + LED2_TB_OFF; // } } if(g_com_map[MAP_SIGN_INDEX]!=0x55AA||g_com_map[COM_INTERVAL]==0) @@ -260,56 +277,19 @@ return sum; } -u32 Loratx_frequency; +//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;} -srand(HAL_LPTIM_ReadCounter(&hlptim1)); - Loratx_frequency=((rand()%5)+470)*1000000; -//Loratx_frequency=474000000; -} +//void GetLoratx_frequency(void) +//{ +//Loratx_frequency=470000000; +//srand(HAL_LPTIM_ReadCounter(&hlptim1)); +// Loratx_frequency=((rand()%5)+470)*1000000; +// if(470000000<=Loratx_frequency&&Loratx_frequency<480000000) +// g_com_map[NEARBASE_ID1]=1136+(Loratx_frequency/1000000-470); +// if(480000000<=Loratx_frequency&&Loratx_frequency<490000000) +// g_com_map[NEARBASE_ID1]=1152+(Loratx_frequency/1000000-480); +//Loratx_frequency=470000000; +//} void Program_Init(void) { float temp; uint16_t temp2; @@ -322,15 +302,10 @@ //deca_sleep(1000); g_com_map[VERSION] = (1<<8)|0; // g_com_map[DEV_ID]=1158; - #ifdef DEBUG_MODE - // g_com_map[GROUP_ID]=21; -// g_com_map[DEV_ID]=4; - // g_com_map[COM_INTERVAL]=100; - // g_com_map[MAX_REPORT_ANC_NUM]=1; - // g_com_map[NOMOVESLEEP_TIME]=10; - #endif - g_com_map[GROUP_ID]=33; - g_com_map[COM_INTERVAL] = 1000; + g_com_map[GROUP_ID]=5; +// g_com_map[COM_INTERVAL] = 1000; + if(g_com_map[COM_INTERVAL]<1000) + {g_com_map[COM_INTERVAL] = 1000;} active_flag = g_com_map[ACTIVE_INDEX]; module_power = g_com_map[POWER]; g_com_map[IMU_ENABLE] = 0; @@ -356,7 +331,7 @@ // g_com_map[COM_INTERVAL]=100; if(g_com_map[COM_INTERVAL]==0) { - g_com_map[COM_INTERVAL]=100; + g_com_map[COM_INTERVAL]=1000; } if(module_power>67) {module_power=67;} @@ -365,13 +340,13 @@ current_slotnum=1; // current_time=GetLPTime(); - if (HAL_LPTIM_TimeOut_Start_IT(&hlptim1, LPTIMER_1S_COUNT, 32767) != HAL_OK) //system time is 1010ms 1 puls=30.518us - { - Error_Handler(); - } +// if (HAL_LPTIM_TimeOut_Start_IT(&hlptim1, LPTIMER_1S_COUNT, 0) != HAL_OK) //system time is 1010ms 1 puls=30.518us +// { +// Error_Handler(); +// } //g_com_map[NOMOVESLEEP_TIME]=5; - printf("固件版本: 免布线基站LORA版本 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); +// printf("固件版本: 免布线LORA工卡 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); memcpy(g_com_map2,g_com_map,COM_MAP_SIZE); // printf("DEVICE PAIRID: %d .\r\n",g_com_map[PAIR_ID]); // printf("DEVICE ALARM DISTANCE: 1.%d 2.%d 3.%d .\r\n",g_com_map[ALARM_DISTANCE1],g_com_map[ALARM_DISTANCE2],g_com_map[ALARM_DISTANCE3]); @@ -390,7 +365,13 @@ uint32_t temp; extern uint8_t sleep_flag,m_bEUARTTxEn; uint16_t waitusart_timer; +//void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle) +//{ +// /* Set transmission flag: trasfer complete*/ +// waitusart_timer = tag_frequency*USART_KEEPWAKE_TIME; +// +//} void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) { //SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader @@ -439,7 +420,7 @@ if(GPIO_Pin == GPIO_PIN_3) { SystemClock_Config(); - HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET); +// HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET); // HAL_GPIO_WritePin(RADIO_NSS_GPIO_Port, RADIO_NSS_Pin, GPIO_PIN_RESET); //片选lora有效 // l_bIsVibration = HIDO_TRUE; // nomove_time=0; @@ -449,24 +430,15 @@ } if(GPIO_Pin == GPIO_PIN_1)//按键 { + SystemClock_Config(); anjian_flag=1; } if(GPIO_Pin == GPIO_PIN_0)//加速度 { + SystemClock_Config(); stationary_flag =0; + stationary_num=0; } -} -void Uwb_Lora_Switch(uint8_t uwb, uint8_t lora) -{ -if(uwb) -HAL_GPIO_WritePin(SPI_CS_GPIO_Port, SPI_CS_Pin, GPIO_PIN_SET); -else -HAL_GPIO_WritePin(SPI_CS_GPIO_Port, SPI_CS_Pin, GPIO_PIN_RESET); - -if(lora) -HAL_GPIO_WritePin(GPIOB, RADIO_NSS_Pin, GPIO_PIN_SET); -else -HAL_GPIO_WritePin(GPIOB, RADIO_NSS_Pin, GPIO_PIN_RESET); } extern void Lora_tx_zubao( void ); extern void Lora_tx_mode( void ); @@ -479,101 +451,67 @@ extern uint16_t Lora_tx_ancdist[50]; extern uint8_t Lora_tx_anc_electricity[50]; u8 lora_seq_nb1; -void Lora_Tx_Poll() -{ - if(lora_tx_flag) - { -// Lora47X_change(); -// Delay_Ms(50); -// SX126xReset(); -// HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET); - Lora47X_Init(); - lora_tx_flag=0; - LED_TB_ON; - lora_seq_nb2++; - Lora_tx_zubao(); -// Lora_tx_mode(); - Radio.Send( usart_send, 13+Lora_tx_ancnum*4); - Lora_tx_ancnum=0; - memset(Lora_tx_ancdist,0,sizeof(Lora_tx_ancdist)); - memset(Lora_tx_ancid,0,sizeof(Lora_tx_ancid)); - anjian_flag=0; - } - if(lora_txanchor_power_flag) - { -// SX126xReset(); -// Lora47X_change(); -// Delay_Ms(50); - Lora47X_Init(); - LED_TB_ON; - lora_seq_nb1++; - lora_txanchor_power_flag=0; - uint16_t checksum; - usart_send[2] = 0x23;//基站电量模式 - usart_send[3] = 6+Lora_tx_ancnum*3;//数据段长度 - memcpy(&usart_send[4],&dev_id,2); - usart_send[6] = lora_seq_nb1;//包序 - usart_send[7] = Lora_tx_ancnum; - memcpy(&usart_send[8],&Lora_tx_ancid,2*Lora_tx_ancnum); - memcpy(&usart_send[8+Lora_tx_ancnum*2],&Lora_tx_anc_electricity,Lora_tx_ancnum); - checksum = Checksum_u16(&usart_send[2],8+3*Lora_tx_ancnum); - memcpy(&usart_send[8+3*Lora_tx_ancnum],&checksum,2); -// Lora_tx_mode(); - Radio.Send( usart_send, 10+Lora_tx_ancnum*3); - Lora_tx_ancnum=0; - - } - - -// Lora_Txcount=HAL_LPTIM_ReadCounter(&hlptim1); -// -// if(Lora_Txcount-Old_Lora_Txcount>=6554) -// { -// Old_Lora_Txcount=Lora_Txcount; -// LED_TB_ON; -// lora_seq_nb2++; -// Lora_tx_zubao(); -// Lora_tx_mode(); -// Radio.Send( usart_send, 12+Lora_tx_ancnum*4); -// Lora_tx_ancnum=0; -// memset(Lora_tx_ancdist,0,sizeof(Lora_tx_ancdist)); -// memset(Lora_tx_ancid,0,sizeof(Lora_tx_ancid)); -// } -} +static uint8_t send_frame1[EUART_RX_BUF_SIZE]; +#define BleRxBufferSize 1 +uint8_t aRxBuffer[1],group_id,GPSRxBuffer[BleRxBufferSize]; +uint8_t ble_rx_success_flag; +uint8_t fangzhijinrushuimian_flag; +uint8_t GPS_zhongzhuandate[200]; +uint8_t GPS_zhongzhuannum; +uint8_t GPS_GGAdate[200]={1,2,3,4,5,6,7,8,9}; +uint8_t GPSchangdu; +uint8_t Close_RMC[20]="$CCMSG,RMC,1,0,*04\r\n"; +uint8_t Close_GSA[20]="$CCMSG,GSA,1,0,*0D\r\n"; +uint8_t Close_GSV[20]="$CCMSG,GSV,1,0,*1A\r\n"; +uint8_t Close_GLL[20]="$CCMSG,GLL,1,0,*1F\r\n"; +uint8_t Close_TXT[20]="$CCMSG,TXT,1,0,*00\r\n"; +uint8_t gps_ceju=0; +uint8_t no_yingdaflag; void MX_ADC1_Init() { MX_ADC_Init(); } -#define BleRxBufferSize 1 -uint8_t aRxBuffer[1],group_id,BleRxBuffer[BleRxBufferSize]; -uint8_t ble_rx_success_flag; -uint8_t fangzhijinrushuimian_flag; -uint8_t ble_rxzhongzhuandate[50]; -uint8_t ble_zhongzhuannum; -uint8_t ble_rxdate[50]={1,2,3,4,5,6,7,8,9}; +extern uint16_t Lora_rece_error; +extern uint16_t Beepchixutime; +void Beep_Off() +{ + __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, 0); + HAL_TIM_PWM_Stop(&htim2, TIM_CHANNEL_4); + HAL_TIM_Base_Stop_IT(&htim2); +} +void Beep_On() +{ + HAL_TIM_Base_Start_IT(&htim2); + HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_4); + __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, 60); +} void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { -// HAL_UART_Transmit(&hlpuart1,(uint8_t*)ble_rxdate11111,3,1000); -// uint8_t ble_rxzhongzhuandate[50]; -// uint8_t ble_zhongzhuannum; -// if(lp_time>3) +//HAL_UART_Transmit(&huart1,&ble_zhongzhuannum,1,1000); { - ble_rxzhongzhuandate[ble_zhongzhuannum]=BleRxBuffer[0]; - ble_zhongzhuannum++; - if(ble_rxzhongzhuandate[ble_zhongzhuannum-1]==0x0A&&ble_rxzhongzhuandate[ble_zhongzhuannum-2]==0x0D) + GPS_zhongzhuandate[GPS_zhongzhuannum]=GPSRxBuffer[0]; + GPS_zhongzhuannum++; + if(GPS_zhongzhuandate[GPS_zhongzhuannum-1]==0x0A&&GPS_zhongzhuandate[GPS_zhongzhuannum-2]==0x0D) { // HAL_UART_Transmit(&hlpuart1,ble_rxdate,5,1000); - ble_zhongzhuannum=0; - memcpy(ble_rxdate,ble_rxzhongzhuandate,50); - memset(ble_rxzhongzhuandate,0,sizeof(ble_rxzhongzhuandate)); + memcpy(GPS_GGAdate,GPS_zhongzhuandate,GPS_zhongzhuannum); + GPSchangdu= GPS_zhongzhuannum; + memset(GPS_zhongzhuandate,0,sizeof(GPS_zhongzhuandate)); + GPS_zhongzhuannum=0; fangzhijinrushuimian_flag=0; ble_rx_success_flag=1; + if(GPSchangdu>40) + { + if(state5v==0) + LED2_TB_ON; + } + else + { + if(state5v==0) + LED2_TR_ON; + } } - HAL_UART_Receive_IT(&hlpuart1, (uint8_t *)BleRxBuffer, 1); -// if(huart->Instance == hlpuart.Instance) -// { //if(huart == &huart3) -// g_uart3_rx_status = SET; -// } + HAL_UART_Receive_IT(&hlpuart1, (uint8_t *)GPSRxBuffer, 1); } } uint8_t ble_rxdate111[3]={0x11,0x22,0x33}; @@ -592,36 +530,36 @@ // } // if(lp_time>3) fangzhijinrushuimian_flag=1; - HAL_UART_Receive_IT(&hlpuart1, (uint8_t *)BleRxBuffer, 1); + HAL_UART_Receive_IT(&hlpuart1, (uint8_t *)GPSRxBuffer, 1); // HAL_UART_Transmit(&hlpuart1,ble_rxdate,2,1000); } -void Ble_rx_Poll() -{ - if(ble_rx_success_flag) - { - ble_rx_success_flag=0; - if(ble_rxdate[0]==0x55&&ble_rxdate[1]==0xAA&&ble_rxdate[5]==0x0D&&ble_rxdate[6]==0x0A) +void PowerDownDetect(void) +{ + static uint32_t l_u32QXpowerTick = 0; +static uint32_t powercount=0; + if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_12)) { - if(ble_rxdate[2]==0x01) - { - memcpy(&g_com_map[NEARBASE_ID1],&ble_rxdate[3],2); - save_com_map_to_flash(); - delay_ms(100); -// NVIC_SystemReset(); + delay_ms(1000); + if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_12)) + { + while(1) + { + if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_12)==0) + { + delay_ms(100); + HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET); + } } - if(ble_rxdate[3]==0x02) - { - memcpy(&g_com_map[NEARBASE_ID2],&ble_rxdate[4],2); - save_com_map_to_flash(); - delay_ms(100); -// NVIC_SystemReset(); - } - - + } } - HAL_UART_Transmit(&hlpuart1,ble_rxdate,10,1000); - memset(ble_rxdate,0,sizeof(ble_rxdate)); - } +} +uint8_t usart5_state,flag_onesecond; +void OneSecondTask(void) +{ + if(flag_onesecond==1) + { + flag_onesecond = 0; + } } /* USER CODE END 0 */ @@ -653,21 +591,20 @@ /* Initialize all configured peripherals */ MX_GPIO_Init(); - MX_LPTIM1_Init(); - MX_DMA_Init(); MX_USART1_UART_Init(); MX_SPI1_Init(); MX_ADC_Init(); - - MX_IWDG_Init(); + MX_DMA_Init(); +// MX_IWDG_Init(); + MX_TIM2_Init(); MX_LPUART1_UART_Init(); + MX_LPTIM1_Init(); /* USER CODE BEGIN 2 */ // LED_LG_ON; Program_Init(); LIS3DH_Data_Init(); // Uwb_Lora_Switch(1,0); Dw1000_Init(); - Dw1000_App_Init(); Delay_Ms(10); // Uwb_Lora_Switch(0,0); // HardWareTypeDiffConfig(); @@ -677,29 +614,25 @@ { Error_Handler(); } - Delay_Ms(2); -// Uwb_Lora_Switch(0,1); -// Lora433rx_Init(); -// Lora47xrx_Init(); -// Lora_Init(); -// Lora47xrx_Init(); -// Radio.Sleep( ); Delay_Ms(10); // Uwb_Lora_Switch(0,0); - printf("RXD :66666\r\n"); +// printf("RXD :66666\r\n"); usart_send[0]=0x55; usart_send[1]=0xaa; bat_percent=Get_VDDVlotage(); - GetLoratx_frequency(); - HAL_UART_Receive_IT(&hlpuart1, (uint8_t *)BleRxBuffer, 1); -// Lora47X_Init(); -// mcu_sleep(); - //LED0_BLINK; -// SystemPower_Config(); -//HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); -// HAL_GPIO_WritePin(RADIO_NSS_GPIO_Port, RADIO_NSS_Pin, GPIO_PIN_SET); //片选lora无效 -// lora_tx_flag=1; -// Lora_Tx_Poll(); + HAL_UART_Receive_IT(&hlpuart1, (uint8_t *)GPSRxBuffer, 1); + HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_SET); //开GPS电源 + LoraInit(); + Delay_Ms(1000); + HAL_UART_Transmit(&hlpuart1,Close_RMC,22,1000); + HAL_UART_Transmit(&hlpuart1,Close_GSA,22,1000); + HAL_UART_Transmit(&hlpuart1,Close_GSV,22,1000); + HAL_UART_Transmit(&hlpuart1,Close_GLL,22,1000); + HAL_UART_Transmit(&hlpuart1,Close_TXT,22,1000); + if (HAL_LPTIM_TimeOut_Start_IT(&hlptim1, LPTIMER_1S_COUNT, 0) != HAL_OK) //system time is 1010ms 1 puls=30.518us + { + Error_Handler(); + } /* USER CODE END 2 */ /* Infinite loop */ @@ -709,18 +642,13 @@ /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ -//Lora_rx_open(); -// Lora_Tx_Poll(); - Lora_Tx_Poll(); - Ble_rx_Poll(); - HAL_IWDG_Refresh(&hiwdg); -// IdleTask(); -// Radio.IrqProcess( ); // Process Radio IRQ -// Anchor_App(); +// HAL_IWDG_Refresh(&hiwdg); + OneSecondTask(); + IdleTask(); -// #ifndef DEBUG_MODE -// if(!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)) -// { + #ifndef DEBUG_MODE + if(!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)) + { if(fangzhijinrushuimian_flag==0) { Selection.WakeUpEvent = UART_WAKEUP_ON_STARTBIT; @@ -730,8 +658,8 @@ __HAL_UART_ENABLE_IT(&hlpuart1, UART_IT_WUF); HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); } -// } -// #endif + } + #endif } /* USER CODE END 3 */ @@ -753,7 +681,7 @@ /** Configure LSE Drive Capability */ HAL_PWR_EnableBkUpAccess(); - __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_HIGH); + __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW); /** Initializes the CPU, AHB and APB busses clocks */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSI @@ -906,10 +834,7 @@ Error_Handler(); } /* USER CODE BEGIN LPTIM1_Init 2 */ -// if (HAL_LPTIM_TimeOut_Start_IT(&hlptim1, Period, Timeout) != HAL_OK) -// { -// Error_Handler(); -// } + /* USER CODE END LPTIM1_Init 2 */ } @@ -1034,6 +959,55 @@ } /** + * @brief TIM2 Initialization Function + * @param None + * @retval None + */ +static void MX_TIM2_Init(void) +{ + + /* USER CODE BEGIN TIM2_Init 0 */ + + /* USER CODE END TIM2_Init 0 */ + + TIM_MasterConfigTypeDef sMasterConfig = {0}; + TIM_OC_InitTypeDef sConfigOC = {0}; + + /* USER CODE BEGIN TIM2_Init 1 */ + + /* USER CODE END TIM2_Init 1 */ + htim2.Instance = TIM2; + htim2.Init.Prescaler = 32-1; + htim2.Init.CounterMode = TIM_COUNTERMODE_UP; + htim2.Init.Period = 250-1; + htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + if (HAL_TIM_PWM_Init(&htim2) != HAL_OK) + { + Error_Handler(); + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK) + { + Error_Handler(); + } + sConfigOC.OCMode = TIM_OCMODE_PWM1; + sConfigOC.Pulse = 0; + sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; + sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; + if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_4) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN TIM2_Init 2 */ + + /* USER CODE END TIM2_Init 2 */ + HAL_TIM_MspPostInit(&htim2); + +} + +/** * Enable DMA controller clock */ static void MX_DMA_Init(void) @@ -1065,6 +1039,9 @@ __HAL_RCC_GPIOB_CLK_ENABLE(); /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2|GPIO_PIN_8, GPIO_PIN_RESET); + + /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(SPI_CS_GPIO_Port, SPI_CS_Pin, GPIO_PIN_SET); /*Configure GPIO pin Output Level */ @@ -1074,13 +1051,17 @@ HAL_GPIO_WritePin(GPIOB, 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); - - /*Configure GPIO pin : PA0 */ - GPIO_InitStruct.Pin = GPIO_PIN_0; + /*Configure GPIO pins : PA0 PA15 */ + GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_15; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /*Configure GPIO pins : PA2 PA8 */ + GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_8; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /*Configure GPIO pin : SPI_CS_Pin */ @@ -1118,18 +1099,17 @@ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - /*Configure GPIO pins : PA8 DW_CTRL_Pin LED2_G_Pin */ - GPIO_InitStruct.Pin = GPIO_PIN_8|DW_CTRL_Pin|LED2_G_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - /*Configure GPIO pin : RADIO_DIO1_Pin */ GPIO_InitStruct.Pin = RADIO_DIO1_Pin; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(RADIO_DIO1_GPIO_Port, &GPIO_InitStruct); + + /*Configure GPIO pin : INPUT_5V_Pin */ + GPIO_InitStruct.Pin = INPUT_5V_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_INPUT; + GPIO_InitStruct.Pull = GPIO_PULLDOWN; + HAL_GPIO_Init(INPUT_5V_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : SDA_Pin SCL_Pin */ GPIO_InitStruct.Pin = SDA_Pin|SCL_Pin; @@ -1180,40 +1160,50 @@ extern uint8_t lora_chongfuyingda_flag; uint16_t no_data_chongqi_num; uint16_t anchor_send_num; +uint8_t no_yingdatime; void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim) { +// uint8_t pinlv; SystemClock_Config(); lp_time++; anchor_send_num++; no_data_chongqi_num++; stationary_num++; - if( no_data_chongqi_num>600) - {NVIC_SystemReset();} - SetNextPollTime(0); -// if(lora_yingda_flag) -// { -// lora_yingdatime++; -// if(lora_yingdatime>=2) -// {lora_yingdatime=0; -// lora_yingda_flag=0; -// Lora_tx_mode(); -// Radio.Send( usart_send, 2); -// } -// } -// else -// { - - - lora_tx_flag=1; - lora_txanchor_power_flag=0; -// } - if(anchor_send_num>=600) - {anchor_send_num=0; - lora_txanchor_power_flag=1; - lora_tx_flag=0; - bat_percent=Get_VDDVlotage(); + if(Beepchixutime>0) + { + Beepchixutime--; + if(Beepchixutime==0) + {Beep_Off();} + } + if(no_yingdaflag==1) + { + no_yingdatime++; + if(no_yingdatime>=5) + { + no_yingdaflag=0; + no_yingdatime=0; + } } + if( no_data_chongqi_num>600) + {NVIC_SystemReset();} + + if(lp_time%(g_com_map[COM_INTERVAL]/1000)==0) + { + + LoraReportPoll(); + flag_onesecond = 1; + +// lora_tx_flag=1; +// lora_txanchor_power_flag=0; +// } +// if(anchor_send_num>=3600) +// {anchor_send_num=0; +// lora_txanchor_power_flag=1; +// lora_tx_flag=0; +// bat_percent=Get_VDDVlotage(); +// } + } if(stationary_num>=10) {stationary_num=0; -- Gitblit v1.9.3