Subversion Repositories FuelGauge

Rev

Rev 3 | 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          : stm32f0xx_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. extern DMA_HandleTypeDef hdma_spi1_tx;
  30.  
  31. /* Private typedef -----------------------------------------------------------*/
  32. /* USER CODE BEGIN TD */
  33.  
  34. /* USER CODE END TD */
  35.  
  36. /* Private define ------------------------------------------------------------*/
  37. /* USER CODE BEGIN Define */
  38.  
  39. /* USER CODE END Define */
  40.  
  41. /* Private macro -------------------------------------------------------------*/
  42. /* USER CODE BEGIN Macro */
  43.  
  44. /* USER CODE END Macro */
  45.  
  46. /* Private variables ---------------------------------------------------------*/
  47. /* USER CODE BEGIN PV */
  48.  
  49. /* USER CODE END PV */
  50.  
  51. /* Private function prototypes -----------------------------------------------*/
  52. /* USER CODE BEGIN PFP */
  53.  
  54. /* USER CODE END PFP */
  55.  
  56. /* External functions --------------------------------------------------------*/
  57. /* USER CODE BEGIN ExternalFunctions */
  58.  
  59. /* USER CODE END ExternalFunctions */
  60.  
  61. /* USER CODE BEGIN 0 */
  62.  
  63. /* USER CODE END 0 */
  64. /**
  65.   * Initializes the Global MSP.
  66.   */
  67. void HAL_MspInit(void)
  68. {
  69.   /* USER CODE BEGIN MspInit 0 */
  70.  
  71.   /* USER CODE END MspInit 0 */
  72.  
  73.   __HAL_RCC_SYSCFG_CLK_ENABLE();
  74.   __HAL_RCC_PWR_CLK_ENABLE();
  75.  
  76.   /* System interrupt init*/
  77.  
  78.   /* USER CODE BEGIN MspInit 1 */
  79.  
  80.   /* USER CODE END MspInit 1 */
  81. }
  82.  
  83. /**
  84. * @brief ADC MSP Initialization
  85. * This function configures the hardware resources used in this example
  86. * @param hadc: ADC handle pointer
  87. * @retval None
  88. */
  89. void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
  90. {
  91.   GPIO_InitTypeDef GPIO_InitStruct = {0};
  92.   if(hadc->Instance==ADC1)
  93.   {
  94.   /* USER CODE BEGIN ADC1_MspInit 0 */
  95.  
  96.   /* USER CODE END ADC1_MspInit 0 */
  97.     /* Peripheral clock enable */
  98.     __HAL_RCC_ADC1_CLK_ENABLE();
  99.  
  100.     __HAL_RCC_GPIOA_CLK_ENABLE();
  101.     /**ADC GPIO Configuration
  102.     PA0     ------> ADC_IN0
  103.     */
  104.     GPIO_InitStruct.Pin = GPIO_PIN_0;
  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.     */
  152.     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0);
  153.  
  154.     /* ADC1 DMA DeInit */
  155.     HAL_DMA_DeInit(hadc->DMA_Handle);
  156.   /* USER CODE BEGIN ADC1_MspDeInit 1 */
  157.  
  158.   /* USER CODE END ADC1_MspDeInit 1 */
  159.   }
  160.  
  161. }
  162.  
  163. /**
  164. * @brief SPI MSP Initialization
  165. * This function configures the hardware resources used in this example
  166. * @param hspi: SPI handle pointer
  167. * @retval None
  168. */
  169. void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
  170. {
  171.   GPIO_InitTypeDef GPIO_InitStruct = {0};
  172.   if(hspi->Instance==SPI1)
  173.   {
  174.   /* USER CODE BEGIN SPI1_MspInit 0 */
  175.  
  176.   /* USER CODE END SPI1_MspInit 0 */
  177.     /* Peripheral clock enable */
  178.     __HAL_RCC_SPI1_CLK_ENABLE();
  179.  
  180.     __HAL_RCC_GPIOA_CLK_ENABLE();
  181.     /**SPI1 GPIO Configuration
  182.     PA5     ------> SPI1_SCK
  183.     PA7     ------> SPI1_MOSI
  184.     */
  185.     GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_7;
  186.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  187.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  188.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  189.     GPIO_InitStruct.Alternate = GPIO_AF0_SPI1;
  190.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  191.  
  192.     /* SPI1 DMA Init */
  193.     /* SPI1_TX Init */
  194.     hdma_spi1_tx.Instance = DMA1_Channel3;
  195.     hdma_spi1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
  196.     hdma_spi1_tx.Init.PeriphInc = DMA_PINC_DISABLE;
  197.     hdma_spi1_tx.Init.MemInc = DMA_MINC_ENABLE;
  198.     hdma_spi1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
  199.     hdma_spi1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
  200.     hdma_spi1_tx.Init.Mode = DMA_NORMAL;
  201.     hdma_spi1_tx.Init.Priority = DMA_PRIORITY_HIGH;
  202.     if (HAL_DMA_Init(&hdma_spi1_tx) != HAL_OK)
  203.     {
  204.       Error_Handler();
  205.     }
  206.  
  207.     __HAL_LINKDMA(hspi,hdmatx,hdma_spi1_tx);
  208.  
  209.   /* USER CODE BEGIN SPI1_MspInit 1 */
  210.  
  211.   /* USER CODE END SPI1_MspInit 1 */
  212.   }
  213.  
  214. }
  215.  
  216. /**
  217. * @brief SPI MSP De-Initialization
  218. * This function freeze the hardware resources used in this example
  219. * @param hspi: SPI handle pointer
  220. * @retval None
  221. */
  222. void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
  223. {
  224.   if(hspi->Instance==SPI1)
  225.   {
  226.   /* USER CODE BEGIN SPI1_MspDeInit 0 */
  227.  
  228.   /* USER CODE END SPI1_MspDeInit 0 */
  229.     /* Peripheral clock disable */
  230.     __HAL_RCC_SPI1_CLK_DISABLE();
  231.  
  232.     /**SPI1 GPIO Configuration
  233.     PA5     ------> SPI1_SCK
  234.     PA7     ------> SPI1_MOSI
  235.     */
  236.     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_7);
  237.  
  238.     /* SPI1 DMA DeInit */
  239.     HAL_DMA_DeInit(hspi->hdmatx);
  240.   /* USER CODE BEGIN SPI1_MspDeInit 1 */
  241.  
  242.   /* USER CODE END SPI1_MspDeInit 1 */
  243.   }
  244.  
  245. }
  246.  
  247. /**
  248. * @brief TIM_Base MSP Initialization
  249. * This function configures the hardware resources used in this example
  250. * @param htim_base: TIM_Base handle pointer
  251. * @retval None
  252. */
  253. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
  254. {
  255.   if(htim_base->Instance==TIM1)
  256.   {
  257.   /* USER CODE BEGIN TIM1_MspInit 0 */
  258.  
  259.   /* USER CODE END TIM1_MspInit 0 */
  260.     /* Peripheral clock enable */
  261.     __HAL_RCC_TIM1_CLK_ENABLE();
  262.   /* USER CODE BEGIN TIM1_MspInit 1 */
  263.  
  264.   /* USER CODE END TIM1_MspInit 1 */
  265.   }
  266.   else if(htim_base->Instance==TIM3)
  267.   {
  268.   /* USER CODE BEGIN TIM3_MspInit 0 */
  269.  
  270.   /* USER CODE END TIM3_MspInit 0 */
  271.     /* Peripheral clock enable */
  272.     __HAL_RCC_TIM3_CLK_ENABLE();
  273.   /* USER CODE BEGIN TIM3_MspInit 1 */
  274.  
  275.   /* USER CODE END TIM3_MspInit 1 */
  276.   }
  277.  
  278. }
  279.  
  280. /**
  281. * @brief TIM_Base MSP De-Initialization
  282. * This function freeze the hardware resources used in this example
  283. * @param htim_base: TIM_Base handle pointer
  284. * @retval None
  285. */
  286. void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
  287. {
  288.   if(htim_base->Instance==TIM1)
  289.   {
  290.   /* USER CODE BEGIN TIM1_MspDeInit 0 */
  291.  
  292.   /* USER CODE END TIM1_MspDeInit 0 */
  293.     /* Peripheral clock disable */
  294.     __HAL_RCC_TIM1_CLK_DISABLE();
  295.   /* USER CODE BEGIN TIM1_MspDeInit 1 */
  296.  
  297.   /* USER CODE END TIM1_MspDeInit 1 */
  298.   }
  299.   else if(htim_base->Instance==TIM3)
  300.   {
  301.   /* USER CODE BEGIN TIM3_MspDeInit 0 */
  302.  
  303.   /* USER CODE END TIM3_MspDeInit 0 */
  304.     /* Peripheral clock disable */
  305.     __HAL_RCC_TIM3_CLK_DISABLE();
  306.   /* USER CODE BEGIN TIM3_MspDeInit 1 */
  307.  
  308.   /* USER CODE END TIM3_MspDeInit 1 */
  309.   }
  310.  
  311. }
  312.  
  313. /**
  314. * @brief UART MSP Initialization
  315. * This function configures the hardware resources used in this example
  316. * @param huart: UART handle pointer
  317. * @retval None
  318. */
  319. void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  320. {
  321.   GPIO_InitTypeDef GPIO_InitStruct = {0};
  322.   if(huart->Instance==USART1)
  323.   {
  324.   /* USER CODE BEGIN USART1_MspInit 0 */
  325.  
  326.   /* USER CODE END USART1_MspInit 0 */
  327.     /* Peripheral clock enable */
  328.     __HAL_RCC_USART1_CLK_ENABLE();
  329.  
  330.     __HAL_RCC_GPIOA_CLK_ENABLE();
  331.     /**USART1 GPIO Configuration
  332.     PA2     ------> USART1_TX
  333.     PA3     ------> USART1_RX
  334.     */
  335.     GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
  336.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  337.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  338.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  339.     GPIO_InitStruct.Alternate = GPIO_AF1_USART1;
  340.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  341.  
  342.   /* USER CODE BEGIN USART1_MspInit 1 */
  343.  
  344.   /* USER CODE END USART1_MspInit 1 */
  345.   }
  346.  
  347. }
  348.  
  349. /**
  350. * @brief UART MSP De-Initialization
  351. * This function freeze the hardware resources used in this example
  352. * @param huart: UART handle pointer
  353. * @retval None
  354. */
  355. void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
  356. {
  357.   if(huart->Instance==USART1)
  358.   {
  359.   /* USER CODE BEGIN USART1_MspDeInit 0 */
  360.  
  361.   /* USER CODE END USART1_MspDeInit 0 */
  362.     /* Peripheral clock disable */
  363.     __HAL_RCC_USART1_CLK_DISABLE();
  364.  
  365.     /**USART1 GPIO Configuration
  366.     PA2     ------> USART1_TX
  367.     PA3     ------> USART1_RX
  368.     */
  369.     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
  370.  
  371.   /* USER CODE BEGIN USART1_MspDeInit 1 */
  372.  
  373.   /* USER CODE END USART1_MspDeInit 1 */
  374.   }
  375.  
  376. }
  377.  
  378. /* USER CODE BEGIN 1 */
  379.  
  380. /* USER CODE END 1 */
  381.  
  382. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
  383.