Subversion Repositories EngineBay2

Rev

Rev 18 | Rev 29 | 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          : stm32l1xx_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) 2020 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_adc;
  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_COMP_CLK_ENABLE();
  72.   __HAL_RCC_SYSCFG_CLK_ENABLE();
  73.   __HAL_RCC_PWR_CLK_ENABLE();
  74.  
  75.   /* System interrupt init*/
  76.  
  77.   /* USER CODE BEGIN MspInit 1 */
  78.  
  79.   /* USER CODE END MspInit 1 */
  80. }
  81.  
  82. /**
  83. * @brief ADC MSP Initialization
  84. * This function configures the hardware resources used in this example
  85. * @param hadc: ADC handle pointer
  86. * @retval None
  87. */
  88. void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
  89. {
  90.   GPIO_InitTypeDef GPIO_InitStruct = {0};
  91.   if(hadc->Instance==ADC1)
  92.   {
  93.   /* USER CODE BEGIN ADC1_MspInit 0 */
  94.  
  95.   /* USER CODE END ADC1_MspInit 0 */
  96.     /* Peripheral clock enable */
  97.     __HAL_RCC_ADC1_CLK_ENABLE();
  98.  
  99.     __HAL_RCC_GPIOC_CLK_ENABLE();
  100.     /**ADC GPIO Configuration
  101.     PC0     ------> ADC_IN10
  102.     PC1     ------> ADC_IN11
  103.     PC2     ------> ADC_IN12
  104.     PC3     ------> ADC_IN13
  105.     */
  106.     GPIO_InitStruct.Pin = V_Batt1_Pin|V_Batt2_Pin|V_Oil_Pin|V_MAP_Pin;
  107.     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  108.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  109.     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  110.  
  111.     /* ADC1 DMA Init */
  112.     /* ADC Init */
  113.     hdma_adc.Instance = DMA1_Channel1;
  114.     hdma_adc.Init.Direction = DMA_PERIPH_TO_MEMORY;
  115.     hdma_adc.Init.PeriphInc = DMA_PINC_DISABLE;
  116.     hdma_adc.Init.MemInc = DMA_MINC_ENABLE;
  117.     hdma_adc.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
  118.     hdma_adc.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
  119.     hdma_adc.Init.Mode = DMA_CIRCULAR;
  120.     hdma_adc.Init.Priority = DMA_PRIORITY_LOW;
  121.     if (HAL_DMA_Init(&hdma_adc) != HAL_OK)
  122.     {
  123.       Error_Handler();
  124.     }
  125.  
  126.     __HAL_LINKDMA(hadc,DMA_Handle,hdma_adc);
  127.  
  128.   /* USER CODE BEGIN ADC1_MspInit 1 */
  129.  
  130.   /* USER CODE END ADC1_MspInit 1 */
  131.   }
  132.  
  133. }
  134.  
  135. /**
  136. * @brief ADC MSP De-Initialization
  137. * This function freeze the hardware resources used in this example
  138. * @param hadc: ADC handle pointer
  139. * @retval None
  140. */
  141. void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
  142. {
  143.   if(hadc->Instance==ADC1)
  144.   {
  145.   /* USER CODE BEGIN ADC1_MspDeInit 0 */
  146.  
  147.   /* USER CODE END ADC1_MspDeInit 0 */
  148.     /* Peripheral clock disable */
  149.     __HAL_RCC_ADC1_CLK_DISABLE();
  150.  
  151.     /**ADC GPIO Configuration
  152.     PC0     ------> ADC_IN10
  153.     PC1     ------> ADC_IN11
  154.     PC2     ------> ADC_IN12
  155.     PC3     ------> ADC_IN13
  156.     */
  157.     HAL_GPIO_DeInit(GPIOC, V_Batt1_Pin|V_Batt2_Pin|V_Oil_Pin|V_MAP_Pin);
  158.  
  159.     /* ADC1 DMA DeInit */
  160.     HAL_DMA_DeInit(hadc->DMA_Handle);
  161.   /* USER CODE BEGIN ADC1_MspDeInit 1 */
  162.  
  163.   /* USER CODE END ADC1_MspDeInit 1 */
  164.   }
  165.  
  166. }
  167.  
  168. /**
  169. * @brief SPI MSP Initialization
  170. * This function configures the hardware resources used in this example
  171. * @param hspi: SPI handle pointer
  172. * @retval None
  173. */
  174. void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
  175. {
  176.   GPIO_InitTypeDef GPIO_InitStruct = {0};
  177.   if(hspi->Instance==SPI1)
  178.   {
  179.   /* USER CODE BEGIN SPI1_MspInit 0 */
  180.  
  181.   /* USER CODE END SPI1_MspInit 0 */
  182.     /* Peripheral clock enable */
  183.     __HAL_RCC_SPI1_CLK_ENABLE();
  184.  
  185.     __HAL_RCC_GPIOA_CLK_ENABLE();
  186.     /**SPI1 GPIO Configuration
  187.     PA5     ------> SPI1_SCK
  188.     PA6     ------> SPI1_MISO
  189.     PA7     ------> SPI1_MOSI
  190.     */
  191.     GPIO_InitStruct.Pin = SPI1_SCK_Pin|SPI1_MISO_Pin|SPI1_MOSI_Pin;
  192.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  193.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  194.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  195.     GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
  196.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  197.  
  198.   /* USER CODE BEGIN SPI1_MspInit 1 */
  199.  
  200.   /* USER CODE END SPI1_MspInit 1 */
  201.   }
  202.  
  203. }
  204.  
  205. /**
  206. * @brief SPI MSP De-Initialization
  207. * This function freeze the hardware resources used in this example
  208. * @param hspi: SPI handle pointer
  209. * @retval None
  210. */
  211. void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
  212. {
  213.   if(hspi->Instance==SPI1)
  214.   {
  215.   /* USER CODE BEGIN SPI1_MspDeInit 0 */
  216.  
  217.   /* USER CODE END SPI1_MspDeInit 0 */
  218.     /* Peripheral clock disable */
  219.     __HAL_RCC_SPI1_CLK_DISABLE();
  220.  
  221.     /**SPI1 GPIO Configuration
  222.     PA5     ------> SPI1_SCK
  223.     PA6     ------> SPI1_MISO
  224.     PA7     ------> SPI1_MOSI
  225.     */
  226.     HAL_GPIO_DeInit(GPIOA, SPI1_SCK_Pin|SPI1_MISO_Pin|SPI1_MOSI_Pin);
  227.  
  228.   /* USER CODE BEGIN SPI1_MspDeInit 1 */
  229.  
  230.   /* USER CODE END SPI1_MspDeInit 1 */
  231.   }
  232.  
  233. }
  234.  
  235. /**
  236. * @brief TIM_Base MSP Initialization
  237. * This function configures the hardware resources used in this example
  238. * @param htim_base: TIM_Base handle pointer
  239. * @retval None
  240. */
  241. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
  242. {
  243.   GPIO_InitTypeDef GPIO_InitStruct = {0};
  244.   if(htim_base->Instance==TIM2)
  245.   {
  246.   /* USER CODE BEGIN TIM2_MspInit 0 */
  247.  
  248.   /* USER CODE END TIM2_MspInit 0 */
  249.     /* Peripheral clock enable */
  250.     __HAL_RCC_TIM2_CLK_ENABLE();
  251.  
  252.     __HAL_RCC_GPIOA_CLK_ENABLE();
  253.     /**TIM2 GPIO Configuration
  254.     PA15     ------> TIM2_CH1
  255.     */
  256.     GPIO_InitStruct.Pin = CB_Pulse_Pin;
  257.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  258.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  259.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  260.     GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
  261.     HAL_GPIO_Init(CB_Pulse_GPIO_Port, &GPIO_InitStruct);
  262.  
  263.     /* TIM2 interrupt Init */
  264.     HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0);
  265.     HAL_NVIC_EnableIRQ(TIM2_IRQn);
  266.   /* USER CODE BEGIN TIM2_MspInit 1 */
  267.  
  268.   /* USER CODE END TIM2_MspInit 1 */
  269.   }
  270.   else if(htim_base->Instance==TIM3)
  271.   {
  272.   /* USER CODE BEGIN TIM3_MspInit 0 */
  273.  
  274.   /* USER CODE END TIM3_MspInit 0 */
  275.     /* Peripheral clock enable */
  276.     __HAL_RCC_TIM3_CLK_ENABLE();
  277.   /* USER CODE BEGIN TIM3_MspInit 1 */
  278.  
  279.   /* USER CODE END TIM3_MspInit 1 */
  280.   }
  281.   else if(htim_base->Instance==TIM6)
  282.   {
  283.   /* USER CODE BEGIN TIM6_MspInit 0 */
  284.  
  285.   /* USER CODE END TIM6_MspInit 0 */
  286.     /* Peripheral clock enable */
  287.     __HAL_RCC_TIM6_CLK_ENABLE();
  288.     /* TIM6 interrupt Init */
  289.     HAL_NVIC_SetPriority(TIM6_IRQn, 0, 0);
  290.     HAL_NVIC_EnableIRQ(TIM6_IRQn);
  291.   /* USER CODE BEGIN TIM6_MspInit 1 */
  292.  
  293.   /* USER CODE END TIM6_MspInit 1 */
  294.   }
  295.  
  296. }
  297.  
  298. /**
  299. * @brief TIM_Base MSP De-Initialization
  300. * This function freeze the hardware resources used in this example
  301. * @param htim_base: TIM_Base handle pointer
  302. * @retval None
  303. */
  304. void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
  305. {
  306.   if(htim_base->Instance==TIM2)
  307.   {
  308.   /* USER CODE BEGIN TIM2_MspDeInit 0 */
  309.  
  310.   /* USER CODE END TIM2_MspDeInit 0 */
  311.     /* Peripheral clock disable */
  312.     __HAL_RCC_TIM2_CLK_DISABLE();
  313.  
  314.     /**TIM2 GPIO Configuration
  315.     PA15     ------> TIM2_CH1
  316.     */
  317.     HAL_GPIO_DeInit(CB_Pulse_GPIO_Port, CB_Pulse_Pin);
  318.  
  319.     /* TIM2 interrupt DeInit */
  320.     HAL_NVIC_DisableIRQ(TIM2_IRQn);
  321.   /* USER CODE BEGIN TIM2_MspDeInit 1 */
  322.  
  323.   /* USER CODE END TIM2_MspDeInit 1 */
  324.   }
  325.   else if(htim_base->Instance==TIM3)
  326.   {
  327.   /* USER CODE BEGIN TIM3_MspDeInit 0 */
  328.  
  329.   /* USER CODE END TIM3_MspDeInit 0 */
  330.     /* Peripheral clock disable */
  331.     __HAL_RCC_TIM3_CLK_DISABLE();
  332.   /* USER CODE BEGIN TIM3_MspDeInit 1 */
  333.  
  334.   /* USER CODE END TIM3_MspDeInit 1 */
  335.   }
  336.   else if(htim_base->Instance==TIM6)
  337.   {
  338.   /* USER CODE BEGIN TIM6_MspDeInit 0 */
  339.  
  340.   /* USER CODE END TIM6_MspDeInit 0 */
  341.     /* Peripheral clock disable */
  342.     __HAL_RCC_TIM6_CLK_DISABLE();
  343.  
  344.     /* TIM6 interrupt DeInit */
  345.     HAL_NVIC_DisableIRQ(TIM6_IRQn);
  346.   /* USER CODE BEGIN TIM6_MspDeInit 1 */
  347.  
  348.   /* USER CODE END TIM6_MspDeInit 1 */
  349.   }
  350.  
  351. }
  352.  
  353. /**
  354. * @brief UART MSP Initialization
  355. * This function configures the hardware resources used in this example
  356. * @param huart: UART handle pointer
  357. * @retval None
  358. */
  359. void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  360. {
  361.   GPIO_InitTypeDef GPIO_InitStruct = {0};
  362.   if(huart->Instance==USART1)
  363.   {
  364.   /* USER CODE BEGIN USART1_MspInit 0 */
  365.  
  366.   /* USER CODE END USART1_MspInit 0 */
  367.     /* Peripheral clock enable */
  368.     __HAL_RCC_USART1_CLK_ENABLE();
  369.  
  370.     __HAL_RCC_GPIOA_CLK_ENABLE();
  371.     /**USART1 GPIO Configuration
  372.     PA9     ------> USART1_TX
  373.     PA10     ------> USART1_RX
  374.     */
  375.     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
  376.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  377.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  378.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  379.     GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
  380.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  381.  
  382.     /* USART1 interrupt Init */
  383.     HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
  384.     HAL_NVIC_EnableIRQ(USART1_IRQn);
  385.   /* USER CODE BEGIN USART1_MspInit 1 */
  386.  
  387.   /* USER CODE END USART1_MspInit 1 */
  388.   }
  389.   else if(huart->Instance==USART2)
  390.   {
  391.   /* USER CODE BEGIN USART2_MspInit 0 */
  392.  
  393.   /* USER CODE END USART2_MspInit 0 */
  394.     /* Peripheral clock enable */
  395.     __HAL_RCC_USART2_CLK_ENABLE();
  396.  
  397.     __HAL_RCC_GPIOA_CLK_ENABLE();
  398.     /**USART2 GPIO Configuration
  399.     PA2     ------> USART2_TX
  400.     PA3     ------> USART2_RX
  401.     */
  402.     GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
  403.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  404.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  405.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  406.     GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
  407.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  408.  
  409.     /* USART2 interrupt Init */
  410.     HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
  411.     HAL_NVIC_EnableIRQ(USART2_IRQn);
  412.   /* USER CODE BEGIN USART2_MspInit 1 */
  413.  
  414.   /* USER CODE END USART2_MspInit 1 */
  415.   }
  416.  
  417. }
  418.  
  419. /**
  420. * @brief UART MSP De-Initialization
  421. * This function freeze the hardware resources used in this example
  422. * @param huart: UART handle pointer
  423. * @retval None
  424. */
  425. void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
  426. {
  427.   if(huart->Instance==USART1)
  428.   {
  429.   /* USER CODE BEGIN USART1_MspDeInit 0 */
  430.  
  431.   /* USER CODE END USART1_MspDeInit 0 */
  432.     /* Peripheral clock disable */
  433.     __HAL_RCC_USART1_CLK_DISABLE();
  434.  
  435.     /**USART1 GPIO Configuration
  436.     PA9     ------> USART1_TX
  437.     PA10     ------> USART1_RX
  438.     */
  439.     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
  440.  
  441.     /* USART1 interrupt DeInit */
  442.     HAL_NVIC_DisableIRQ(USART1_IRQn);
  443.   /* USER CODE BEGIN USART1_MspDeInit 1 */
  444.  
  445.   /* USER CODE END USART1_MspDeInit 1 */
  446.   }
  447.   else if(huart->Instance==USART2)
  448.   {
  449.   /* USER CODE BEGIN USART2_MspDeInit 0 */
  450.  
  451.   /* USER CODE END USART2_MspDeInit 0 */
  452.     /* Peripheral clock disable */
  453.     __HAL_RCC_USART2_CLK_DISABLE();
  454.  
  455.     /**USART2 GPIO Configuration
  456.     PA2     ------> USART2_TX
  457.     PA3     ------> USART2_RX
  458.     */
  459.     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
  460.  
  461.     /* USART2 interrupt DeInit */
  462.     HAL_NVIC_DisableIRQ(USART2_IRQn);
  463.   /* USER CODE BEGIN USART2_MspDeInit 1 */
  464.  
  465.   /* USER CODE END USART2_MspDeInit 1 */
  466.   }
  467.  
  468. }
  469.  
  470. /* USER CODE BEGIN 1 */
  471.  
  472. /* USER CODE END 1 */
  473.  
  474. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
  475.