Subversion Repositories EngineBay2

Rev

Rev 38 | Rev 53 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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