Subversion Repositories EngineBay2

Rev

Rev 53 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2. /* USER CODE BEGIN Header */
  3. /**
  4.   ******************************************************************************
  5.   * File Name          : stm32f1xx_hal_msp.c
  6.   * Description        : This file provides code for the MSP Initialization
  7.   *                      and de-Initialization codes.
  8.   ******************************************************************************
  9.   * @attention
  10.   *
  11.   * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
  12.   * All rights reserved.</center></h2>
  13.   *
  14.   * This software component is licensed by ST under BSD 3-Clause license,
  15.   * the "License"; You may not use this file except in compliance with the
  16.   * License. You may obtain a copy of the License at:
  17.   *                        opensource.org/licenses/BSD-3-Clause
  18.   *
  19.   ******************************************************************************
  20.   */
  21. /* USER CODE END Header */
  22.  
  23. /* Includes ------------------------------------------------------------------*/
  24. #include "main.h"
  25. /* USER CODE BEGIN Includes */
  26.  
  27. /* USER CODE END Includes */
  28. extern DMA_HandleTypeDef hdma_adc1;
  29.  
  30. /* Private typedef -----------------------------------------------------------*/
  31. /* USER CODE BEGIN TD */
  32.  
  33. /* USER CODE END TD */
  34.  
  35. /* Private define ------------------------------------------------------------*/
  36. /* USER CODE BEGIN Define */
  37.  
  38. /* USER CODE END Define */
  39.  
  40. /* Private macro -------------------------------------------------------------*/
  41. /* USER CODE BEGIN Macro */
  42.  
  43. /* USER CODE END Macro */
  44.  
  45. /* Private variables ---------------------------------------------------------*/
  46. /* USER CODE BEGIN PV */
  47.  
  48. /* USER CODE END PV */
  49.  
  50. /* Private function prototypes -----------------------------------------------*/
  51. /* USER CODE BEGIN PFP */
  52.  
  53. /* USER CODE END PFP */
  54.  
  55. /* External functions --------------------------------------------------------*/
  56. /* USER CODE BEGIN ExternalFunctions */
  57.  
  58. /* USER CODE END ExternalFunctions */
  59.  
  60. /* USER CODE BEGIN 0 */
  61.  
  62. /* USER CODE END 0 */
  63. /**
  64.   * Initializes the Global MSP.
  65.   */
  66. void HAL_MspInit(void)
  67. {
  68.  
  69.   /* USER CODE BEGIN MspInit 0 */
  70.  
  71.   /* USER CODE END MspInit 0 */
  72.  
  73.   __HAL_RCC_AFIO_CLK_ENABLE();
  74.   __HAL_RCC_PWR_CLK_ENABLE();
  75.  
  76.   /* System interrupt init*/
  77.  
  78.   /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled
  79.   */
  80.   __HAL_AFIO_REMAP_SWJ_NOJTAG();
  81.  
  82.   /* USER CODE BEGIN MspInit 1 */
  83.  
  84.   /* USER CODE END MspInit 1 */
  85. }
  86.  
  87. /**
  88. * @brief ADC MSP Initialization
  89. * This function configures the hardware resources used in this example
  90. * @param hadc: ADC handle pointer
  91. * @retval None
  92. */
  93. void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
  94. {
  95.   GPIO_InitTypeDef GPIO_InitStruct = {0};
  96.   if(hadc->Instance==ADC1)
  97.   {
  98.   /* USER CODE BEGIN ADC1_MspInit 0 */
  99.  
  100.   /* USER CODE END ADC1_MspInit 0 */
  101.     /* Peripheral clock enable */
  102.     __HAL_RCC_ADC1_CLK_ENABLE();
  103.  
  104.     __HAL_RCC_GPIOA_CLK_ENABLE();
  105.     /**ADC1 GPIO Configuration
  106.     PA0-WKUP     ------> ADC1_IN0
  107.     PA1     ------> ADC1_IN1
  108.     PA2     ------> ADC1_IN2
  109.     PA3     ------> ADC1_IN3
  110.     PA4     ------> ADC1_IN4
  111.     */
  112.     GPIO_InitStruct.Pin = V_Batt1_Pin|V_Batt2_Pin|V_Map_Pin|V_Oil_Pin
  113.                           |V_Oil_Temp_Pin;
  114.     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  115.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  116.  
  117.     /* ADC1 DMA Init */
  118.     /* ADC1 Init */
  119.     hdma_adc1.Instance = DMA1_Channel1;
  120.     hdma_adc1.Init.Direction = DMA_PERIPH_TO_MEMORY;
  121.     hdma_adc1.Init.PeriphInc = DMA_PINC_DISABLE;
  122.     hdma_adc1.Init.MemInc = DMA_MINC_ENABLE;
  123.     hdma_adc1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
  124.     hdma_adc1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
  125.     hdma_adc1.Init.Mode = DMA_CIRCULAR;
  126.     hdma_adc1.Init.Priority = DMA_PRIORITY_LOW;
  127.     if (HAL_DMA_Init(&hdma_adc1) != HAL_OK)
  128.     {
  129.       Error_Handler();
  130.     }
  131.  
  132.     __HAL_LINKDMA(hadc,DMA_Handle,hdma_adc1);
  133.  
  134.   /* USER CODE BEGIN ADC1_MspInit 1 */
  135.  
  136.   /* USER CODE END ADC1_MspInit 1 */
  137.  
  138.   }
  139.  
  140. }
  141.  
  142. /**
  143. * @brief ADC MSP De-Initialization
  144. * This function freeze the hardware resources used in this example
  145. * @param hadc: ADC handle pointer
  146. * @retval None
  147. */
  148. void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
  149. {
  150.   if(hadc->Instance==ADC1)
  151.   {
  152.   /* USER CODE BEGIN ADC1_MspDeInit 0 */
  153.  
  154.   /* USER CODE END ADC1_MspDeInit 0 */
  155.     /* Peripheral clock disable */
  156.     __HAL_RCC_ADC1_CLK_DISABLE();
  157.  
  158.     /**ADC1 GPIO Configuration
  159.     PA0-WKUP     ------> ADC1_IN0
  160.     PA1     ------> ADC1_IN1
  161.     PA2     ------> ADC1_IN2
  162.     PA3     ------> ADC1_IN3
  163.     PA4     ------> ADC1_IN4
  164.     */
  165.     HAL_GPIO_DeInit(GPIOA, V_Batt1_Pin|V_Batt2_Pin|V_Map_Pin|V_Oil_Pin
  166.                           |V_Oil_Temp_Pin);
  167.  
  168.     /* ADC1 DMA DeInit */
  169.     HAL_DMA_DeInit(hadc->DMA_Handle);
  170.   /* USER CODE BEGIN ADC1_MspDeInit 1 */
  171.  
  172.   /* USER CODE END ADC1_MspDeInit 1 */
  173.   }
  174.  
  175. }
  176.  
  177. /**
  178. * @brief CAN MSP Initialization
  179. * This function configures the hardware resources used in this example
  180. * @param hcan: CAN handle pointer
  181. * @retval None
  182. */
  183. void HAL_CAN_MspInit(CAN_HandleTypeDef* hcan)
  184. {
  185.   GPIO_InitTypeDef GPIO_InitStruct = {0};
  186.   if(hcan->Instance==CAN1)
  187.   {
  188.   /* USER CODE BEGIN CAN1_MspInit 0 */
  189.  
  190.   /* USER CODE END CAN1_MspInit 0 */
  191.     /* Peripheral clock enable */
  192.     __HAL_RCC_CAN1_CLK_ENABLE();
  193.  
  194.     __HAL_RCC_GPIOA_CLK_ENABLE();
  195.     /**CAN GPIO Configuration
  196.     PA11     ------> CAN_RX
  197.     PA12     ------> CAN_TX
  198.     */
  199.     GPIO_InitStruct.Pin = GPIO_PIN_11;
  200.     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  201.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  202.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  203.  
  204.     GPIO_InitStruct.Pin = GPIO_PIN_12;
  205.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  206.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  207.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  208.  
  209.   /* USER CODE BEGIN CAN1_MspInit 1 */
  210.  
  211.   /* USER CODE END CAN1_MspInit 1 */
  212.  
  213.   }
  214.  
  215. }
  216.  
  217. /**
  218. * @brief CAN MSP De-Initialization
  219. * This function freeze the hardware resources used in this example
  220. * @param hcan: CAN handle pointer
  221. * @retval None
  222. */
  223. void HAL_CAN_MspDeInit(CAN_HandleTypeDef* hcan)
  224. {
  225.   if(hcan->Instance==CAN1)
  226.   {
  227.   /* USER CODE BEGIN CAN1_MspDeInit 0 */
  228.  
  229.   /* USER CODE END CAN1_MspDeInit 0 */
  230.     /* Peripheral clock disable */
  231.     __HAL_RCC_CAN1_CLK_DISABLE();
  232.  
  233.     /**CAN GPIO Configuration
  234.     PA11     ------> CAN_RX
  235.     PA12     ------> CAN_TX
  236.     */
  237.     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12);
  238.  
  239.   /* USER CODE BEGIN CAN1_MspDeInit 1 */
  240.  
  241.   /* USER CODE END CAN1_MspDeInit 1 */
  242.   }
  243.  
  244. }
  245.  
  246. /**
  247. * @brief SPI MSP Initialization
  248. * This function configures the hardware resources used in this example
  249. * @param hspi: SPI handle pointer
  250. * @retval None
  251. */
  252. void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
  253. {
  254.   GPIO_InitTypeDef GPIO_InitStruct = {0};
  255.   if(hspi->Instance==SPI1)
  256.   {
  257.   /* USER CODE BEGIN SPI1_MspInit 0 */
  258.  
  259.   /* USER CODE END SPI1_MspInit 0 */
  260.     /* Peripheral clock enable */
  261.     __HAL_RCC_SPI1_CLK_ENABLE();
  262.  
  263.     __HAL_RCC_GPIOA_CLK_ENABLE();
  264.     /**SPI1 GPIO Configuration
  265.     PA5     ------> SPI1_SCK
  266.     PA6     ------> SPI1_MISO
  267.     PA7     ------> SPI1_MOSI
  268.     */
  269.     GPIO_InitStruct.Pin = SPI1_SCK_Pin|SPI1_MOSI_Pin;
  270.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  271.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  272.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  273.  
  274.     GPIO_InitStruct.Pin = SPI1_MISO_Pin;
  275.     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  276.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  277.     HAL_GPIO_Init(SPI1_MISO_GPIO_Port, &GPIO_InitStruct);
  278.  
  279.   /* USER CODE BEGIN SPI1_MspInit 1 */
  280.  
  281.   /* USER CODE END SPI1_MspInit 1 */
  282.  
  283.   }
  284.  
  285. }
  286.  
  287. /**
  288. * @brief SPI MSP De-Initialization
  289. * This function freeze the hardware resources used in this example
  290. * @param hspi: SPI handle pointer
  291. * @retval None
  292. */
  293. void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
  294. {
  295.   if(hspi->Instance==SPI1)
  296.   {
  297.   /* USER CODE BEGIN SPI1_MspDeInit 0 */
  298.  
  299.   /* USER CODE END SPI1_MspDeInit 0 */
  300.     /* Peripheral clock disable */
  301.     __HAL_RCC_SPI1_CLK_DISABLE();
  302.  
  303.     /**SPI1 GPIO Configuration
  304.     PA5     ------> SPI1_SCK
  305.     PA6     ------> SPI1_MISO
  306.     PA7     ------> SPI1_MOSI
  307.     */
  308.     HAL_GPIO_DeInit(GPIOA, SPI1_SCK_Pin|SPI1_MISO_Pin|SPI1_MOSI_Pin);
  309.  
  310.   /* USER CODE BEGIN SPI1_MspDeInit 1 */
  311.  
  312.   /* USER CODE END SPI1_MspDeInit 1 */
  313.   }
  314.  
  315. }
  316.  
  317. /**
  318. * @brief TIM_Base MSP Initialization
  319. * This function configures the hardware resources used in this example
  320. * @param htim_base: TIM_Base handle pointer
  321. * @retval None
  322. */
  323. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
  324. {
  325.   GPIO_InitTypeDef GPIO_InitStruct = {0};
  326.   if(htim_base->Instance==TIM2)
  327.   {
  328.   /* USER CODE BEGIN TIM2_MspInit 0 */
  329.  
  330.   /* USER CODE END TIM2_MspInit 0 */
  331.     /* Peripheral clock enable */
  332.     __HAL_RCC_TIM2_CLK_ENABLE();
  333.  
  334.     __HAL_RCC_GPIOA_CLK_ENABLE();
  335.     /**TIM2 GPIO Configuration
  336.     PA15     ------> TIM2_CH1
  337.     */
  338.     GPIO_InitStruct.Pin = CB_Pulse_Pin;
  339.     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  340.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  341.     HAL_GPIO_Init(CB_Pulse_GPIO_Port, &GPIO_InitStruct);
  342.  
  343.     __HAL_AFIO_REMAP_TIM2_PARTIAL_1();
  344.  
  345.     /* TIM2 interrupt Init */
  346.     HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0);
  347.     HAL_NVIC_EnableIRQ(TIM2_IRQn);
  348.   /* USER CODE BEGIN TIM2_MspInit 1 */
  349.  
  350.   /* USER CODE END TIM2_MspInit 1 */
  351.   }
  352.   else if(htim_base->Instance==TIM3)
  353.   {
  354.   /* USER CODE BEGIN TIM3_MspInit 0 */
  355.  
  356.   /* USER CODE END TIM3_MspInit 0 */
  357.     /* Peripheral clock enable */
  358.     __HAL_RCC_TIM3_CLK_ENABLE();
  359.     /* TIM3 interrupt Init */
  360.     HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0);
  361.     HAL_NVIC_EnableIRQ(TIM3_IRQn);
  362.   /* USER CODE BEGIN TIM3_MspInit 1 */
  363.  
  364.   /* USER CODE END TIM3_MspInit 1 */
  365.   }
  366.   else if(htim_base->Instance==TIM4)
  367.   {
  368.   /* USER CODE BEGIN TIM4_MspInit 0 */
  369.  
  370.   /* USER CODE END TIM4_MspInit 0 */
  371.     /* Peripheral clock enable */
  372.     __HAL_RCC_TIM4_CLK_ENABLE();
  373.     /* TIM4 interrupt Init */
  374.     HAL_NVIC_SetPriority(TIM4_IRQn, 0, 0);
  375.     HAL_NVIC_EnableIRQ(TIM4_IRQn);
  376.   /* USER CODE BEGIN TIM4_MspInit 1 */
  377.  
  378.   /* USER CODE END TIM4_MspInit 1 */
  379.   }
  380.  
  381. }
  382.  
  383. /**
  384. * @brief TIM_Base MSP De-Initialization
  385. * This function freeze the hardware resources used in this example
  386. * @param htim_base: TIM_Base handle pointer
  387. * @retval None
  388. */
  389. void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
  390. {
  391.   if(htim_base->Instance==TIM2)
  392.   {
  393.   /* USER CODE BEGIN TIM2_MspDeInit 0 */
  394.  
  395.   /* USER CODE END TIM2_MspDeInit 0 */
  396.     /* Peripheral clock disable */
  397.     __HAL_RCC_TIM2_CLK_DISABLE();
  398.  
  399.     /**TIM2 GPIO Configuration
  400.     PA15     ------> TIM2_CH1
  401.     */
  402.     HAL_GPIO_DeInit(CB_Pulse_GPIO_Port, CB_Pulse_Pin);
  403.  
  404.     /* TIM2 interrupt DeInit */
  405.     HAL_NVIC_DisableIRQ(TIM2_IRQn);
  406.   /* USER CODE BEGIN TIM2_MspDeInit 1 */
  407.  
  408.   /* USER CODE END TIM2_MspDeInit 1 */
  409.   }
  410.   else if(htim_base->Instance==TIM3)
  411.   {
  412.   /* USER CODE BEGIN TIM3_MspDeInit 0 */
  413.  
  414.   /* USER CODE END TIM3_MspDeInit 0 */
  415.     /* Peripheral clock disable */
  416.     __HAL_RCC_TIM3_CLK_DISABLE();
  417.  
  418.     /* TIM3 interrupt DeInit */
  419.     HAL_NVIC_DisableIRQ(TIM3_IRQn);
  420.   /* USER CODE BEGIN TIM3_MspDeInit 1 */
  421.  
  422.   /* USER CODE END TIM3_MspDeInit 1 */
  423.   }
  424.   else if(htim_base->Instance==TIM4)
  425.   {
  426.   /* USER CODE BEGIN TIM4_MspDeInit 0 */
  427.  
  428.   /* USER CODE END TIM4_MspDeInit 0 */
  429.     /* Peripheral clock disable */
  430.     __HAL_RCC_TIM4_CLK_DISABLE();
  431.  
  432.     /* TIM4 interrupt DeInit */
  433.     HAL_NVIC_DisableIRQ(TIM4_IRQn);
  434.   /* USER CODE BEGIN TIM4_MspDeInit 1 */
  435.  
  436.   /* USER CODE END TIM4_MspDeInit 1 */
  437.   }
  438.  
  439. }
  440.  
  441. /**
  442. * @brief UART MSP Initialization
  443. * This function configures the hardware resources used in this example
  444. * @param huart: UART handle pointer
  445. * @retval None
  446. */
  447. void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  448. {
  449.   GPIO_InitTypeDef GPIO_InitStruct = {0};
  450.   if(huart->Instance==USART1)
  451.   {
  452.   /* USER CODE BEGIN USART1_MspInit 0 */
  453.  
  454.   /* USER CODE END USART1_MspInit 0 */
  455.     /* Peripheral clock enable */
  456.     __HAL_RCC_USART1_CLK_ENABLE();
  457.  
  458.     __HAL_RCC_GPIOA_CLK_ENABLE();
  459.     /**USART1 GPIO Configuration
  460.     PA9     ------> USART1_TX
  461.     PA10     ------> USART1_RX
  462.     */
  463.     GPIO_InitStruct.Pin = Uart1_TX_Pin;
  464.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  465.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  466.     HAL_GPIO_Init(Uart1_TX_GPIO_Port, &GPIO_InitStruct);
  467.  
  468.     GPIO_InitStruct.Pin = Uart1_RX_Pin;
  469.     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  470.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  471.     HAL_GPIO_Init(Uart1_RX_GPIO_Port, &GPIO_InitStruct);
  472.  
  473.     /* USART1 interrupt Init */
  474.     HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
  475.     HAL_NVIC_EnableIRQ(USART1_IRQn);
  476.   /* USER CODE BEGIN USART1_MspInit 1 */
  477.  
  478.   /* USER CODE END USART1_MspInit 1 */
  479.  
  480.   }
  481.  
  482. }
  483.  
  484. /**
  485. * @brief UART MSP De-Initialization
  486. * This function freeze the hardware resources used in this example
  487. * @param huart: UART handle pointer
  488. * @retval None
  489. */
  490. void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
  491. {
  492.   if(huart->Instance==USART1)
  493.   {
  494.   /* USER CODE BEGIN USART1_MspDeInit 0 */
  495.  
  496.   /* USER CODE END USART1_MspDeInit 0 */
  497.     /* Peripheral clock disable */
  498.     __HAL_RCC_USART1_CLK_DISABLE();
  499.  
  500.     /**USART1 GPIO Configuration
  501.     PA9     ------> USART1_TX
  502.     PA10     ------> USART1_RX
  503.     */
  504.     HAL_GPIO_DeInit(GPIOA, Uart1_TX_Pin|Uart1_RX_Pin);
  505.  
  506.     /* USART1 interrupt DeInit */
  507.     HAL_NVIC_DisableIRQ(USART1_IRQn);
  508.   /* USER CODE BEGIN USART1_MspDeInit 1 */
  509.  
  510.   /* USER CODE END USART1_MspDeInit 1 */
  511.   }
  512.  
  513. }
  514.  
  515. /* USER CODE BEGIN 1 */
  516.  
  517. /* USER CODE END 1 */
  518.