Subversion Repositories ScreenTimer

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /* USER CODE BEGIN Header */
  2. /**
  3.   ******************************************************************************
  4.   * @file         stm32f0xx_hal_msp.c
  5.   * @brief        This file provides code for the MSP Initialization
  6.   *               and de-Initialization codes.
  7.   ******************************************************************************
  8.   * @attention
  9.   *
  10.   * Copyright (c) 2022 STMicroelectronics.
  11.   * All rights reserved.
  12.   *
  13.   * This software is licensed under terms that can be found in the LICENSE file
  14.   * in the root directory of this software component.
  15.   * If no LICENSE file comes with this software, it is provided AS-IS.
  16.   *
  17.   ******************************************************************************
  18.   */
  19. /* USER CODE END Header */
  20.  
  21. /* Includes ------------------------------------------------------------------*/
  22. #include "main.h"
  23. /* USER CODE BEGIN Includes */
  24.  
  25. /* USER CODE END Includes */
  26. extern DMA_HandleTypeDef hdma_adc;
  27.  
  28. /* Private typedef -----------------------------------------------------------*/
  29. /* USER CODE BEGIN TD */
  30.  
  31. /* USER CODE END TD */
  32.  
  33. /* Private define ------------------------------------------------------------*/
  34. /* USER CODE BEGIN Define */
  35.  
  36. /* USER CODE END Define */
  37.  
  38. /* Private macro -------------------------------------------------------------*/
  39. /* USER CODE BEGIN Macro */
  40.  
  41. /* USER CODE END Macro */
  42.  
  43. /* Private variables ---------------------------------------------------------*/
  44. /* USER CODE BEGIN PV */
  45.  
  46. /* USER CODE END PV */
  47.  
  48. /* Private function prototypes -----------------------------------------------*/
  49. /* USER CODE BEGIN PFP */
  50.  
  51. /* USER CODE END PFP */
  52.  
  53. /* External functions --------------------------------------------------------*/
  54. /* USER CODE BEGIN ExternalFunctions */
  55.  
  56. /* USER CODE END ExternalFunctions */
  57.  
  58. /* USER CODE BEGIN 0 */
  59.  
  60. /* USER CODE END 0 */
  61.  
  62. void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
  63.                                         /**
  64.   * Initializes the Global MSP.
  65.   */
  66. void HAL_MspInit(void)
  67. {
  68.   /* USER CODE BEGIN MspInit 0 */
  69.  
  70.   /* USER CODE END MspInit 0 */
  71.  
  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_GPIOA_CLK_ENABLE();
  100.     /**ADC GPIO Configuration
  101.     PA0     ------> ADC_IN0
  102.     PA1     ------> ADC_IN1
  103.     */
  104.     GPIO_InitStruct.Pin = VBatt_Pin|Dashboard_Pin;
  105.     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  106.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  107.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  108.  
  109.     /* ADC1 DMA Init */
  110.     /* ADC Init */
  111.     hdma_adc.Instance = DMA1_Channel1;
  112.     hdma_adc.Init.Direction = DMA_PERIPH_TO_MEMORY;
  113.     hdma_adc.Init.PeriphInc = DMA_PINC_DISABLE;
  114.     hdma_adc.Init.MemInc = DMA_MINC_ENABLE;
  115.     hdma_adc.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
  116.     hdma_adc.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
  117.     hdma_adc.Init.Mode = DMA_CIRCULAR;
  118.     hdma_adc.Init.Priority = DMA_PRIORITY_LOW;
  119.     if (HAL_DMA_Init(&hdma_adc) != HAL_OK)
  120.     {
  121.       Error_Handler();
  122.     }
  123.  
  124.     __HAL_LINKDMA(hadc,DMA_Handle,hdma_adc);
  125.  
  126.   /* USER CODE BEGIN ADC1_MspInit 1 */
  127.  
  128.   /* USER CODE END ADC1_MspInit 1 */
  129.   }
  130.  
  131. }
  132.  
  133. /**
  134. * @brief ADC MSP De-Initialization
  135. * This function freeze the hardware resources used in this example
  136. * @param hadc: ADC handle pointer
  137. * @retval None
  138. */
  139. void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
  140. {
  141.   if(hadc->Instance==ADC1)
  142.   {
  143.   /* USER CODE BEGIN ADC1_MspDeInit 0 */
  144.  
  145.   /* USER CODE END ADC1_MspDeInit 0 */
  146.     /* Peripheral clock disable */
  147.     __HAL_RCC_ADC1_CLK_DISABLE();
  148.  
  149.     /**ADC GPIO Configuration
  150.     PA0     ------> ADC_IN0
  151.     PA1     ------> ADC_IN1
  152.     */
  153.     HAL_GPIO_DeInit(GPIOA, VBatt_Pin|Dashboard_Pin);
  154.  
  155.     /* ADC1 DMA DeInit */
  156.     HAL_DMA_DeInit(hadc->DMA_Handle);
  157.   /* USER CODE BEGIN ADC1_MspDeInit 1 */
  158.  
  159.   /* USER CODE END ADC1_MspDeInit 1 */
  160.   }
  161.  
  162. }
  163.  
  164. /**
  165. * @brief TIM_Base MSP Initialization
  166. * This function configures the hardware resources used in this example
  167. * @param htim_base: TIM_Base handle pointer
  168. * @retval None
  169. */
  170. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
  171. {
  172.   if(htim_base->Instance==TIM3)
  173.   {
  174.   /* USER CODE BEGIN TIM3_MspInit 0 */
  175.  
  176.   /* USER CODE END TIM3_MspInit 0 */
  177.     /* Peripheral clock enable */
  178.     __HAL_RCC_TIM3_CLK_ENABLE();
  179.   /* USER CODE BEGIN TIM3_MspInit 1 */
  180.  
  181.   /* USER CODE END TIM3_MspInit 1 */
  182.   }
  183.   else if(htim_base->Instance==TIM14)
  184.   {
  185.   /* USER CODE BEGIN TIM14_MspInit 0 */
  186.  
  187.   /* USER CODE END TIM14_MspInit 0 */
  188.     /* Peripheral clock enable */
  189.     __HAL_RCC_TIM14_CLK_ENABLE();
  190.   /* USER CODE BEGIN TIM14_MspInit 1 */
  191.  
  192.   /* USER CODE END TIM14_MspInit 1 */
  193.   }
  194.  
  195. }
  196.  
  197. void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
  198. {
  199.   GPIO_InitTypeDef GPIO_InitStruct = {0};
  200.   if(htim->Instance==TIM3)
  201.   {
  202.   /* USER CODE BEGIN TIM3_MspPostInit 0 */
  203.  
  204.   /* USER CODE END TIM3_MspPostInit 0 */
  205.     __HAL_RCC_GPIOA_CLK_ENABLE();
  206.     __HAL_RCC_GPIOB_CLK_ENABLE();
  207.     /**TIM3 GPIO Configuration
  208.     PA7     ------> TIM3_CH2
  209.     PB1     ------> TIM3_CH4
  210.     */
  211.     GPIO_InitStruct.Pin = LEDRight_Pin;
  212.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  213.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  214.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  215.     GPIO_InitStruct.Alternate = GPIO_AF1_TIM3;
  216.     HAL_GPIO_Init(LEDRight_GPIO_Port, &GPIO_InitStruct);
  217.  
  218.     GPIO_InitStruct.Pin = LEDLeft_Pin;
  219.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  220.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  221.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  222.     GPIO_InitStruct.Alternate = GPIO_AF1_TIM3;
  223.     HAL_GPIO_Init(LEDLeft_GPIO_Port, &GPIO_InitStruct);
  224.  
  225.   /* USER CODE BEGIN TIM3_MspPostInit 1 */
  226.  
  227.   /* USER CODE END TIM3_MspPostInit 1 */
  228.   }
  229.   else if(htim->Instance==TIM14)
  230.   {
  231.   /* USER CODE BEGIN TIM14_MspPostInit 0 */
  232.  
  233.   /* USER CODE END TIM14_MspPostInit 0 */
  234.  
  235.     __HAL_RCC_GPIOA_CLK_ENABLE();
  236.     /**TIM14 GPIO Configuration
  237.     PA4     ------> TIM14_CH1
  238.     */
  239.     GPIO_InitStruct.Pin = LEDEval_Pin;
  240.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  241.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  242.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  243.     GPIO_InitStruct.Alternate = GPIO_AF4_TIM14;
  244.     HAL_GPIO_Init(LEDEval_GPIO_Port, &GPIO_InitStruct);
  245.  
  246.   /* USER CODE BEGIN TIM14_MspPostInit 1 */
  247.  
  248.   /* USER CODE END TIM14_MspPostInit 1 */
  249.   }
  250.  
  251. }
  252. /**
  253. * @brief TIM_Base MSP De-Initialization
  254. * This function freeze the hardware resources used in this example
  255. * @param htim_base: TIM_Base handle pointer
  256. * @retval None
  257. */
  258. void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
  259. {
  260.   if(htim_base->Instance==TIM3)
  261.   {
  262.   /* USER CODE BEGIN TIM3_MspDeInit 0 */
  263.  
  264.   /* USER CODE END TIM3_MspDeInit 0 */
  265.     /* Peripheral clock disable */
  266.     __HAL_RCC_TIM3_CLK_DISABLE();
  267.   /* USER CODE BEGIN TIM3_MspDeInit 1 */
  268.  
  269.   /* USER CODE END TIM3_MspDeInit 1 */
  270.   }
  271.   else if(htim_base->Instance==TIM14)
  272.   {
  273.   /* USER CODE BEGIN TIM14_MspDeInit 0 */
  274.  
  275.   /* USER CODE END TIM14_MspDeInit 0 */
  276.     /* Peripheral clock disable */
  277.     __HAL_RCC_TIM14_CLK_DISABLE();
  278.   /* USER CODE BEGIN TIM14_MspDeInit 1 */
  279.  
  280.   /* USER CODE END TIM14_MspDeInit 1 */
  281.   }
  282.  
  283. }
  284.  
  285. /**
  286. * @brief WWDG MSP Initialization
  287. * This function configures the hardware resources used in this example
  288. * @param hwwdg: WWDG handle pointer
  289. * @retval None
  290. */
  291. void HAL_WWDG_MspInit(WWDG_HandleTypeDef* hwwdg)
  292. {
  293.   if(hwwdg->Instance==WWDG)
  294.   {
  295.   /* USER CODE BEGIN WWDG_MspInit 0 */
  296.  
  297.   /* USER CODE END WWDG_MspInit 0 */
  298.     /* Peripheral clock enable */
  299.     __HAL_RCC_WWDG_CLK_ENABLE();
  300.   /* USER CODE BEGIN WWDG_MspInit 1 */
  301.  
  302.   /* USER CODE END WWDG_MspInit 1 */
  303.   }
  304.  
  305. }
  306.  
  307. /* USER CODE BEGIN 1 */
  308.  
  309. /* USER CODE END 1 */
  310.