77 __HAL_RCC_SYSCFG_CLK_ENABLE();
81 HAL_NVIC_SetPriority(PendSV_IRQn, 15, 0);
98 GPIO_InitTypeDef GPIO_InitStruct = {0};
99 if(hadc->Instance==ADC1)
107 __HAL_RCC_ADC12_CLK_ENABLE();
110 __HAL_RCC_GPIOC_CLK_ENABLE();
115 GPIO_InitStruct.Pin = ADC3_BATTERY_Pin|ADC1_Pyrocheck1_Pin;
116 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
117 GPIO_InitStruct.Pull = GPIO_NOPULL;
118 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
124 else if(hadc->Instance==ADC2)
132 __HAL_RCC_ADC12_CLK_ENABLE();
135 __HAL_RCC_GPIOB_CLK_ENABLE();
139 GPIO_InitStruct.Pin = ADC2_Pyrocheck2_Pin;
140 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
141 GPIO_InitStruct.Pull = GPIO_NOPULL;
142 HAL_GPIO_Init(ADC2_Pyrocheck2_GPIO_Port, &GPIO_InitStruct);
148 else if(hadc->Instance==ADC3)
154 __HAL_RCC_ADC3_CLK_ENABLE();
156 __HAL_RCC_GPIOC_CLK_ENABLE();
160 GPIO_InitStruct.Pin = ADC3_BATTERY_Pin;
161 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
162 GPIO_InitStruct.Pull = GPIO_NOPULL;
163 HAL_GPIO_Init(ADC3_BATTERY_GPIO_Port, &GPIO_InitStruct);
180 if(hadc->Instance==ADC1)
188 __HAL_RCC_ADC12_CLK_DISABLE();
195 HAL_GPIO_DeInit(GPIOC, ADC3_BATTERY_Pin|ADC1_Pyrocheck1_Pin);
201 else if(hadc->Instance==ADC2)
209 __HAL_RCC_ADC12_CLK_DISABLE();
215 HAL_GPIO_DeInit(ADC2_Pyrocheck2_GPIO_Port, ADC2_Pyrocheck2_Pin);
221 else if(hadc->Instance==ADC3)
227 __HAL_RCC_ADC3_CLK_DISABLE();
232 HAL_GPIO_DeInit(ADC3_BATTERY_GPIO_Port, ADC3_BATTERY_Pin);
249 GPIO_InitTypeDef GPIO_InitStruct = {0};
250 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
251 if(hfdcan->Instance==FDCAN1)
259 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_FDCAN;
260 PeriphClkInitStruct.FdcanClockSelection = RCC_FDCANCLKSOURCE_PLL;
261 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) !=
HAL_OK)
267 __HAL_RCC_FDCAN_CLK_ENABLE();
269 __HAL_RCC_GPIOB_CLK_ENABLE();
274 GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9;
275 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
276 GPIO_InitStruct.Pull = GPIO_NOPULL;
277 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
278 GPIO_InitStruct.Alternate = GPIO_AF9_FDCAN1;
279 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
297 if(hfdcan->Instance==FDCAN1)
303 __HAL_RCC_FDCAN_CLK_DISABLE();
309 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_8|GPIO_PIN_9);
326 GPIO_InitTypeDef GPIO_InitStruct = {0};
327 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
328 if(
hqspi->Instance==QUADSPI)
336 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_QSPI;
337 PeriphClkInitStruct.QspiClockSelection = RCC_QSPICLKSOURCE_D1HCLK;
338 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) !=
HAL_OK)
344 __HAL_RCC_QSPI_CLK_ENABLE();
346 __HAL_RCC_GPIOB_CLK_ENABLE();
347 __HAL_RCC_GPIOE_CLK_ENABLE();
348 __HAL_RCC_GPIOC_CLK_ENABLE();
357 GPIO_InitStruct.Pin = GPIO_PIN_2;
358 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
359 GPIO_InitStruct.Pull = GPIO_NOPULL;
360 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
361 GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI;
362 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
364 GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10;
365 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
366 GPIO_InitStruct.Pull = GPIO_NOPULL;
367 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
368 GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
369 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
371 GPIO_InitStruct.Pin = GPIO_PIN_11;
372 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
373 GPIO_InitStruct.Pull = GPIO_NOPULL;
374 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
375 GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI;
376 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
408 HAL_NVIC_SetPriority(QUADSPI_IRQn, 5, 0);
409 HAL_NVIC_EnableIRQ(QUADSPI_IRQn);
426 if(
hqspi->Instance==QUADSPI)
432 __HAL_RCC_QSPI_CLK_DISABLE();
442 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_2);
444 HAL_GPIO_DeInit(GPIOE, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10);
446 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_11);
449 HAL_MDMA_DeInit(
hqspi->hmdma);
452 HAL_NVIC_DisableIRQ(QUADSPI_IRQn);
468 GPIO_InitTypeDef GPIO_InitStruct = {0};
469 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
470 if(hspi->Instance==SPI1)
478 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SPI1;
479 PeriphClkInitStruct.Spi123ClockSelection = RCC_SPI123CLKSOURCE_PLL;
480 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) !=
HAL_OK)
486 __HAL_RCC_SPI1_CLK_ENABLE();
488 __HAL_RCC_GPIOA_CLK_ENABLE();
494 GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;
495 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
496 GPIO_InitStruct.Pull = GPIO_NOPULL;
497 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
498 GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
499 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
505 else if(hspi->Instance==SPI2)
513 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SPI2;
514 PeriphClkInitStruct.Spi123ClockSelection = RCC_SPI123CLKSOURCE_PLL;
515 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) !=
HAL_OK)
521 __HAL_RCC_SPI2_CLK_ENABLE();
523 __HAL_RCC_GPIOB_CLK_ENABLE();
529 GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
530 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
531 GPIO_InitStruct.Pull = GPIO_NOPULL;
532 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
533 GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
534 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
540 else if(hspi->Instance==SPI3)
548 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SPI3;
549 PeriphClkInitStruct.Spi123ClockSelection = RCC_SPI123CLKSOURCE_PLL;
550 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) !=
HAL_OK)
556 __HAL_RCC_SPI3_CLK_ENABLE();
558 __HAL_RCC_GPIOB_CLK_ENABLE();
564 GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4;
565 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
566 GPIO_InitStruct.Pull = GPIO_NOPULL;
567 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
568 GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
569 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
571 GPIO_InitStruct.Pin = SPI3_MOSI_SENSEB_Pin;
572 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
573 GPIO_InitStruct.Pull = GPIO_NOPULL;
574 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
575 GPIO_InitStruct.Alternate = GPIO_AF7_SPI3;
576 HAL_GPIO_Init(SPI3_MOSI_SENSEB_GPIO_Port, &GPIO_InitStruct);
593 if(hspi->Instance==SPI1)
599 __HAL_RCC_SPI1_CLK_DISABLE();
606 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
612 else if(hspi->Instance==SPI2)
618 __HAL_RCC_SPI2_CLK_DISABLE();
625 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
631 else if(hspi->Instance==SPI3)
637 __HAL_RCC_SPI3_CLK_DISABLE();
644 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_3|GPIO_PIN_4|SPI3_MOSI_SENSEB_Pin);
661 if(htim_pwm->Instance==TIM2)
667 __HAL_RCC_TIM2_CLK_ENABLE();
672 else if(htim_pwm->Instance==TIM15)
678 __HAL_RCC_TIM15_CLK_ENABLE();
694 if(htim_base->Instance==TIM6)
700 __HAL_RCC_TIM6_CLK_ENABLE();
702 HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 5, 0);
703 HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);
708 else if(htim_base->Instance==TIM7)
714 __HAL_RCC_TIM7_CLK_ENABLE();
716 HAL_NVIC_SetPriority(TIM7_IRQn, 15, 0);
717 HAL_NVIC_EnableIRQ(TIM7_IRQn);
722 else if(htim_base->Instance==TIM13)
728 __HAL_RCC_TIM13_CLK_ENABLE();
730 HAL_NVIC_SetPriority(TIM8_UP_TIM13_IRQn, 14, 0);
731 HAL_NVIC_EnableIRQ(TIM8_UP_TIM13_IRQn);
741 GPIO_InitTypeDef GPIO_InitStruct = {0};
742 if(htim->Instance==TIM2)
747 __HAL_RCC_GPIOA_CLK_ENABLE();
751 GPIO_InitStruct.Pin = TIM2_CH3_PWM_AIRBRAKES_Pin;
752 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
753 GPIO_InitStruct.Pull = GPIO_NOPULL;
754 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
755 GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
756 HAL_GPIO_Init(TIM2_CH3_PWM_AIRBRAKES_GPIO_Port, &GPIO_InitStruct);
762 else if(htim->Instance==TIM15)
768 __HAL_RCC_GPIOE_CLK_ENABLE();
772 GPIO_InitStruct.Pin = TIM15_CH2_BUZZER_Pin;
773 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
774 GPIO_InitStruct.Pull = GPIO_NOPULL;
775 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
776 GPIO_InitStruct.Alternate = GPIO_AF4_TIM15;
777 HAL_GPIO_Init(TIM15_CH2_BUZZER_GPIO_Port, &GPIO_InitStruct);
793 if(htim_pwm->Instance==TIM2)
799 __HAL_RCC_TIM2_CLK_DISABLE();
804 else if(htim_pwm->Instance==TIM15)
810 __HAL_RCC_TIM15_CLK_DISABLE();
826 if(htim_base->Instance==TIM6)
832 __HAL_RCC_TIM6_CLK_DISABLE();
835 HAL_NVIC_DisableIRQ(TIM6_DAC_IRQn);
840 else if(htim_base->Instance==TIM7)
846 __HAL_RCC_TIM7_CLK_DISABLE();
849 HAL_NVIC_DisableIRQ(TIM7_IRQn);
854 else if(htim_base->Instance==TIM13)
860 __HAL_RCC_TIM13_CLK_DISABLE();
863 HAL_NVIC_DisableIRQ(TIM8_UP_TIM13_IRQn);
879 GPIO_InitTypeDef GPIO_InitStruct = {0};
880 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
881 if(huart->Instance==UART4)
889 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_UART4;
890 PeriphClkInitStruct.Usart234578ClockSelection = RCC_USART234578CLKSOURCE_D2PCLK1;
891 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) !=
HAL_OK)
897 __HAL_RCC_UART4_CLK_ENABLE();
899 __HAL_RCC_GPIOD_CLK_ENABLE();
904 GPIO_InitStruct.Pin = UART4_RX_DEBUG_Pin|UART4_TX_DEBUG_Pin;
905 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
906 GPIO_InitStruct.Pull = GPIO_NOPULL;
907 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
908 GPIO_InitStruct.Alternate = GPIO_AF8_UART4;
909 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
915 else if(huart->Instance==USART1)
923 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART1;
924 PeriphClkInitStruct.Usart16ClockSelection = RCC_USART16CLKSOURCE_D2PCLK2;
925 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) !=
HAL_OK)
931 __HAL_RCC_USART1_CLK_ENABLE();
933 __HAL_RCC_GPIOA_CLK_ENABLE();
939 GPIO_InitStruct.Pin = GPIO_PIN_8;
940 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
941 GPIO_InitStruct.Pull = GPIO_NOPULL;
942 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
943 GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
944 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
946 GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
947 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
948 GPIO_InitStruct.Pull = GPIO_NOPULL;
949 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
950 GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
951 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
994 HAL_NVIC_SetPriority(USART1_IRQn, 10, 0);
995 HAL_NVIC_EnableIRQ(USART1_IRQn);
1011 if(huart->Instance==UART4)
1017 __HAL_RCC_UART4_CLK_DISABLE();
1023 HAL_GPIO_DeInit(GPIOD, UART4_RX_DEBUG_Pin|UART4_TX_DEBUG_Pin);
1029 else if(huart->Instance==USART1)
1035 __HAL_RCC_USART1_CLK_DISABLE();
1042 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10);
1045 HAL_DMA_DeInit(huart->hdmarx);
1046 HAL_DMA_DeInit(huart->hdmatx);
1049 HAL_NVIC_DisableIRQ(USART1_IRQn);
1065 GPIO_InitTypeDef GPIO_InitStruct = {0};
1066 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
1067 if(hpcd->Instance==USB_OTG_FS)
1075 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
1076 PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_PLL;
1077 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) !=
HAL_OK)
1084 HAL_PWREx_EnableUSBVoltageDetector();
1086 __HAL_RCC_GPIOA_CLK_ENABLE();
1091 GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12;
1092 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1093 GPIO_InitStruct.Pull = GPIO_NOPULL;
1094 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
1095 GPIO_InitStruct.Alternate = GPIO_AF10_OTG1_FS;
1096 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
1099 __HAL_RCC_USB_OTG_FS_CLK_ENABLE();
1116 if(hpcd->Instance==USB_OTG_FS)
1122 __HAL_RCC_USB_OTG_FS_CLK_DISABLE();
1128 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12);
QSPI_HandleTypeDef hqspi
HAL QSPI handle for the external flash memory.
void Error_Handler(void)
This function is executed in case of error occurrence.
: Header for main.c file. This file contains the common defines of the application.
void HAL_UART_MspInit(UART_HandleTypeDef *huart)
UART MSP Initialization This function configures the hardware resources used in this example.
void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi)
SPI MSP Initialization This function configures the hardware resources used in this example.
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim_pwm)
TIM_PWM MSP Initialization This function configures the hardware resources used in this example.
DMA_HandleTypeDef hdma_usart1_rx
void HAL_ADC_MspDeInit(ADC_HandleTypeDef *hadc)
ADC MSP De-Initialization This function freeze the hardware resources used in this example.
void HAL_FDCAN_MspDeInit(FDCAN_HandleTypeDef *hfdcan)
FDCAN MSP De-Initialization This function freeze the hardware resources used in this example.
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim_base)
TIM_Base MSP De-Initialization This function freeze the hardware resources used in this example.
MDMA_HandleTypeDef hmdma_quadspi_fifo_th
DMA_HandleTypeDef hdma_usart1_tx
void HAL_UART_MspDeInit(UART_HandleTypeDef *huart)
UART MSP De-Initialization This function freeze the hardware resources used in this example.
void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd)
PCD MSP Initialization This function configures the hardware resources used in this example.
void HAL_FDCAN_MspInit(FDCAN_HandleTypeDef *hfdcan)
FDCAN MSP Initialization This function configures the hardware resources used in this example.
void HAL_PCD_MspDeInit(PCD_HandleTypeDef *hpcd)
PCD MSP De-Initialization This function freeze the hardware resources used in this example.
void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc)
ADC MSP Initialization This function configures the hardware resources used in this example.
static uint32_t HAL_RCC_ADC12_CLK_ENABLED
void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi)
SPI MSP De-Initialization This function freeze the hardware resources used in this example.
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim_base)
TIM_Base MSP Initialization This function configures the hardware resources used in this example.
void HAL_QSPI_MspInit(QSPI_HandleTypeDef *hqspi)
QSPI MSP Initialization This function configures the hardware resources used in this example.
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim)
void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef *hqspi)
QSPI MSP De-Initialization This function freeze the hardware resources used in this example.
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim_pwm)
TIM_PWM MSP De-Initialization This function freeze the hardware resources used in this example.