| | |
| | | DMA_HandleTypeDef hdma_usart1_tx; |
| | | |
| | | SPI_HandleTypeDef hspi1; |
| | | SPI_HandleTypeDef hspi2; |
| | | |
| | | TIM_HandleTypeDef htim6; |
| | | |
| | |
| | | static void MX_LPUART1_UART_Init(void); |
| | | static void MX_USART5_UART_Init(void); |
| | | static void MX_TIM6_Init(void); |
| | | static void MX_SPI2_Init(void); |
| | | /* USER CODE BEGIN PFP */ |
| | | |
| | | /* USER CODE END PFP */ |
| | |
| | | hardware_pici = STMFLASH_ReadHalfWord(FLASH_HARDWARE_VERSION_MAP+2); |
| | | hardware_type = STMFLASH_ReadHalfWord(FLASH_HARDWARE_VERSION_MAP+4); |
| | | //deca_sleep(1000); |
| | | g_com_map[VERSION] = (1<<8)|23; |
| | | g_com_map[VERSION] = (1<<8)|25; |
| | | // g_com_map[DEV_ID]=1158; |
| | | // #ifdef DEBUG_MODE |
| | | // // g_com_map[GROUP_ID]=21; |
| | |
| | | extern u8 gps_chafenlingqi; |
| | | uint16_t irq_num; |
| | | u8 lora_irq_flag,lora_working_flag; |
| | | //u8 uwb_irq_flag; |
| | | void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) |
| | | { |
| | | if(GPIO_Pin == RADIO_DIO1_Pin) |
| | | { |
| | | |
| | | // SystemClock_Config(); |
| | | // irq_num++; |
| | | irq_num++; |
| | | lora_irq_flag = 1; |
| | | // RadioIrqProcess(); |
| | | } |
| | |
| | | } |
| | | if(GPIO_Pin == GPIO_PIN_9)//UWB |
| | | { |
| | | if(!HAL_GPIO_ReadPin( RADIO_NSS_GPIO_Port, RADIO_NSS_Pin)) |
| | | { |
| | | gps_chafenlingqi++; |
| | | return; |
| | | } |
| | | // if(!HAL_GPIO_ReadPin( RADIO_NSS_GPIO_Port, RADIO_NSS_Pin)) |
| | | // { |
| | | // gps_chafenlingqi++; |
| | | // return; |
| | | // } |
| | | // uwb_irq_flag = 1; |
| | | MbxTagUwbRec(); |
| | | } |
| | | } |
| | |
| | | HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_RESET); //GuanGPS and lora 电源 |
| | | HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET); //guan uwb 电源 |
| | | HAL_SPI_DeInit(&hspi1); |
| | | HAL_SPI_DeInit(&hspi2); |
| | | HAL_GPIO_WritePin( RADIO_NSS_GPIO_Port, RADIO_NSS_Pin,GPIO_PIN_RESET);//lora cs |
| | | HAL_GPIO_WritePin( GPIOA, GPIO_PIN_4,GPIO_PIN_RESET);//uwb cs |
| | | HAL_GPIO_WritePin( GPIOC, GPIO_PIN_3,GPIO_PIN_RESET);//LORA REST |
| | |
| | | MX_GPIO_Init(); |
| | | MX_DMA_Init(); |
| | | MX_ADC_Init(); |
| | | // MX_IWDG_Init(); |
| | | // MX_IWDG_Init(); |
| | | MX_LPTIM1_Init(); |
| | | MX_USART1_UART_Init(); |
| | | MX_SPI1_Init(); |
| | | MX_LPUART1_UART_Init(); |
| | | MX_USART5_UART_Init(); |
| | | MX_TIM6_Init(); |
| | | MX_SPI2_Init(); |
| | | /* USER CODE BEGIN 2 */ |
| | | GPIO_InitTypeDef GPIO_InitStruct = {0}; |
| | | HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_SET); //开GPS电源 |
| | | delay_ms(10); |
| | | delay_ms(100); |
| | | HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET); //开uwb电源 |
| | | Program_Init(); |
| | | MX_IWDG_Init(); //看门狗务必放到开GPS电源开uwb电源后面,否则GPS工作不正常。 |
| | | HAL_GPIO_WritePin(GPIOC, GPIO_PIN_1, GPIO_PIN_SET); |
| | | GPIO_InitStruct.Pin = GPIO_PIN_1; |
| | | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
| | | GPIO_InitStruct.Pull = GPIO_NOPULL; |
| | | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
| | | HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); |
| | | #ifdef _USE_BAR |
| | | //BarInit(); |
| | | #endif |
| | |
| | | |
| | | LIS3DH_Data_Init(); |
| | | Set4LEDColor(RED,RED,RED,RED); |
| | | HAL_Delay(500); |
| | | delay_ms(100); |
| | | Set4LEDColor_Off(); |
| | | HAL_Delay(500); |
| | | delay_ms(100); |
| | | LoraInit(); |
| | | // delay_ms(1000); |
| | | bat_percent=Get_Battary(); |
| | |
| | | // HAL_IWDG_Refresh(&hiwdg); |
| | | if(lora_irq_flag) |
| | | { |
| | | lora_irq_flag = 0; |
| | | lora_irq_flag = 0; |
| | | lora_working_flag = 1; |
| | | RadioIrqProcess(); |
| | | lora_working_flag = 0; |
| | | } |
| | | // if(uwb_irq_flag) |
| | | // { |
| | | // MbxTagUwbRec(); |
| | | // uwb_irq_flag=0; |
| | | // } |
| | | Lpuart_rx_Poll(); |
| | | OneSecondTask(); |
| | | IdleTask(); |
| | |
| | | } |
| | | |
| | | /** |
| | | * @brief SPI2 Initialization Function |
| | | * @param None |
| | | * @retval None |
| | | */ |
| | | static void MX_SPI2_Init(void) |
| | | { |
| | | |
| | | /* USER CODE BEGIN SPI2_Init 0 */ |
| | | |
| | | /* USER CODE END SPI2_Init 0 */ |
| | | |
| | | /* USER CODE BEGIN SPI2_Init 1 */ |
| | | |
| | | /* USER CODE END SPI2_Init 1 */ |
| | | /* SPI2 parameter configuration*/ |
| | | hspi2.Instance = SPI2; |
| | | hspi2.Init.Mode = SPI_MODE_MASTER; |
| | | hspi2.Init.Direction = SPI_DIRECTION_2LINES; |
| | | hspi2.Init.DataSize = SPI_DATASIZE_8BIT; |
| | | hspi2.Init.CLKPolarity = SPI_POLARITY_LOW; |
| | | hspi2.Init.CLKPhase = SPI_PHASE_1EDGE; |
| | | hspi2.Init.NSS = SPI_NSS_SOFT; |
| | | hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; |
| | | hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB; |
| | | hspi2.Init.TIMode = SPI_TIMODE_DISABLE; |
| | | hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; |
| | | hspi2.Init.CRCPolynomial = 7; |
| | | if (HAL_SPI_Init(&hspi2) != HAL_OK) |
| | | { |
| | | Error_Handler(); |
| | | } |
| | | /* USER CODE BEGIN SPI2_Init 2 */ |
| | | __HAL_SPI_ENABLE(&hspi2); |
| | | /* USER CODE END SPI2_Init 2 */ |
| | | |
| | | } |
| | | |
| | | /** |
| | | * @brief TIM6 Initialization Function |
| | | * @param None |
| | | * @retval None |
| | |
| | | HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13|GPIO_PIN_7|GPIO_PIN_8, GPIO_PIN_RESET); |
| | | |
| | | /*Configure GPIO pin Output Level */ |
| | | HAL_GPIO_WritePin(GPIOC, RADIO_NSS_Pin|RADIO_nRESET_Pin|GPIO_PIN_4, GPIO_PIN_SET); |
| | | |
| | | /*Configure GPIO pin Output Level */ |
| | | HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4|GPIO_PIN_8, GPIO_PIN_SET); |
| | | |
| | | /*Configure GPIO pin Output Level */ |
| | | HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5 |
| | | |GPIO_PIN_7, GPIO_PIN_RESET); |
| | | HAL_GPIO_WritePin(GPIOC, GPIO_PIN_4, GPIO_PIN_SET); |
| | | |
| | | /*Configure GPIO pin Output Level */ |
| | | HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10|SCL_Pin|SDA_Pin|GPIO_PIN_6, GPIO_PIN_SET); |
| | | HAL_GPIO_WritePin(GPIOB, RADIO_NSS_Pin|RADIO_nRESET_Pin|SCL_Pin|SDA_Pin |
| | | |GPIO_PIN_6, GPIO_PIN_SET); |
| | | |
| | | /*Configure GPIO pin Output Level */ |
| | | HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_7, GPIO_PIN_RESET); |
| | | |
| | | /*Configure GPIO pin Output Level */ |
| | | HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12|GPIO_PIN_15, GPIO_PIN_RESET); |
| | | |
| | | /*Configure GPIO pins : PC13 RADIO_NSS_Pin RADIO_nRESET_Pin PC4 |
| | | PC7 PC8 */ |
| | | GPIO_InitStruct.Pin = GPIO_PIN_13|RADIO_NSS_Pin|RADIO_nRESET_Pin|GPIO_PIN_4 |
| | | |GPIO_PIN_7|GPIO_PIN_8; |
| | | /*Configure GPIO pins : PC13 PC4 PC7 PC8 */ |
| | | GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_4|GPIO_PIN_7|GPIO_PIN_8; |
| | | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
| | | GPIO_InitStruct.Pull = GPIO_NOPULL; |
| | | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
| | |
| | | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; |
| | | HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); |
| | | |
| | | /*Configure GPIO pins : PB0 PB2 PB10 PB4 |
| | | /*Configure GPIO pins : RADIO_NSS_Pin PB2 RADIO_nRESET_Pin PB4 |
| | | PB5 PB6 PB7 */ |
| | | GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_10|GPIO_PIN_4 |
| | | GPIO_InitStruct.Pin = RADIO_NSS_Pin|GPIO_PIN_2|RADIO_nRESET_Pin|GPIO_PIN_4 |
| | | |GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7; |
| | | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
| | | GPIO_InitStruct.Pull = GPIO_NOPULL; |