Subversion Repositories EngineBay2

Rev

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