Subversion Repositories EngineBay2

Rev

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

  1. /**
  2.   ******************************************************************************
  3.   * File Name          : stm32l1xx_hal_msp.c
  4.   * Description        : This file provides code for the MSP Initialization
  5.   *                      and de-Initialization codes.
  6.   ******************************************************************************
  7.   *
  8.   * COPYRIGHT(c) 2016 STMicroelectronics
  9.   *
  10.   * Redistribution and use in source and binary forms, with or without modification,
  11.   * are permitted provided that the following conditions are met:
  12.   *   1. Redistributions of source code must retain the above copyright notice,
  13.   *      this list of conditions and the following disclaimer.
  14.   *   2. Redistributions in binary form must reproduce the above copyright notice,
  15.   *      this list of conditions and the following disclaimer in the documentation
  16.   *      and/or other materials provided with the distribution.
  17.   *   3. Neither the name of STMicroelectronics nor the names of its contributors
  18.   *      may be used to endorse or promote products derived from this software
  19.   *      without specific prior written permission.
  20.   *
  21.   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  22.   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  23.   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  24.   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  25.   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  26.   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  27.   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  28.   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  29.   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  30.   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  31.   *
  32.   ******************************************************************************
  33.   */
  34. /* Includes ------------------------------------------------------------------*/
  35. #include "stm32l1xx_hal.h"
  36.  
  37. extern DMA_HandleTypeDef hdma_adc;
  38.  
  39. extern void Error_Handler(void);
  40. /* USER CODE BEGIN 0 */
  41.  
  42. /* USER CODE END 0 */
  43.  
  44. /**
  45.   * Initializes the Global MSP.
  46.   */
  47. void HAL_MspInit(void)
  48. {
  49.   /* USER CODE BEGIN MspInit 0 */
  50.  
  51.   /* USER CODE END MspInit 0 */
  52.  
  53.   __HAL_RCC_COMP_CLK_ENABLE();
  54.   __HAL_RCC_SYSCFG_CLK_ENABLE();
  55.  
  56.   HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
  57.  
  58.   /* System interrupt init*/
  59.   /* MemoryManagement_IRQn interrupt configuration */
  60.   HAL_NVIC_SetPriority(MemoryManagement_IRQn, 0, 0);
  61.   /* BusFault_IRQn interrupt configuration */
  62.   HAL_NVIC_SetPriority(BusFault_IRQn, 0, 0);
  63.   /* UsageFault_IRQn interrupt configuration */
  64.   HAL_NVIC_SetPriority(UsageFault_IRQn, 0, 0);
  65.   /* SVC_IRQn interrupt configuration */
  66.   HAL_NVIC_SetPriority(SVC_IRQn, 0, 0);
  67.   /* DebugMonitor_IRQn interrupt configuration */
  68.   HAL_NVIC_SetPriority(DebugMonitor_IRQn, 0, 0);
  69.   /* PendSV_IRQn interrupt configuration */
  70.   HAL_NVIC_SetPriority(PendSV_IRQn, 0, 0);
  71.   /* SysTick_IRQn interrupt configuration */
  72.   HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
  73.  
  74.   /* USER CODE BEGIN MspInit 1 */
  75.  
  76.   /* USER CODE END MspInit 1 */
  77. }
  78.  
  79. void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
  80. {
  81.  
  82.   GPIO_InitTypeDef GPIO_InitStruct;
  83.   if(hadc->Instance==ADC1)
  84.   {
  85.   /* USER CODE BEGIN ADC1_MspInit 0 */
  86.  
  87.   /* USER CODE END ADC1_MspInit 0 */
  88.     /* Peripheral clock enable */
  89.     __HAL_RCC_ADC1_CLK_ENABLE();
  90.  
  91.     /**ADC GPIO Configuration    
  92.     PC0     ------> ADC_IN10
  93.     PC1     ------> ADC_IN11
  94.     PC2     ------> ADC_IN12
  95.     PC3     ------> ADC_IN13
  96.     */
  97.     GPIO_InitStruct.Pin = V_Batt1_Pin|V_Batt2_Pin|V_Oil_Pin|V_MAP_Pin;
  98.     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  99.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  100.     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  101.  
  102.     /* Peripheral DMA init*/
  103.  
  104.     hdma_adc.Instance = DMA1_Channel1;
  105.     hdma_adc.Init.Direction = DMA_PERIPH_TO_MEMORY;
  106.     hdma_adc.Init.PeriphInc = DMA_PINC_DISABLE;
  107.     hdma_adc.Init.MemInc = DMA_MINC_ENABLE;
  108.     hdma_adc.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
  109.     hdma_adc.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
  110.     hdma_adc.Init.Mode = DMA_NORMAL;
  111.     hdma_adc.Init.Priority = DMA_PRIORITY_LOW;
  112.     if (HAL_DMA_Init(&hdma_adc) != HAL_OK)
  113.     {
  114.       Error_Handler();
  115.     }
  116.  
  117.     __HAL_LINKDMA(hadc,DMA_Handle,hdma_adc);
  118.  
  119.   /* USER CODE BEGIN ADC1_MspInit 1 */
  120.  
  121.   /* USER CODE END ADC1_MspInit 1 */
  122.   }
  123.  
  124. }
  125.  
  126. void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
  127. {
  128.  
  129.   if(hadc->Instance==ADC1)
  130.   {
  131.   /* USER CODE BEGIN ADC1_MspDeInit 0 */
  132.  
  133.   /* USER CODE END ADC1_MspDeInit 0 */
  134.     /* Peripheral clock disable */
  135.     __HAL_RCC_ADC1_CLK_DISABLE();
  136.  
  137.     /**ADC GPIO Configuration    
  138.     PC0     ------> ADC_IN10
  139.     PC1     ------> ADC_IN11
  140.     PC2     ------> ADC_IN12
  141.     PC3     ------> ADC_IN13
  142.     */
  143.     HAL_GPIO_DeInit(GPIOC, V_Batt1_Pin|V_Batt2_Pin|V_Oil_Pin|V_MAP_Pin);
  144.  
  145.     /* Peripheral DMA DeInit*/
  146.     HAL_DMA_DeInit(hadc->DMA_Handle);
  147.   }
  148.   /* USER CODE BEGIN ADC1_MspDeInit 1 */
  149.  
  150.   /* USER CODE END ADC1_MspDeInit 1 */
  151.  
  152. }
  153.  
  154. void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
  155. {
  156.  
  157.   GPIO_InitTypeDef GPIO_InitStruct;
  158.   if(hspi->Instance==SPI1)
  159.   {
  160.   /* USER CODE BEGIN SPI1_MspInit 0 */
  161.  
  162.   /* USER CODE END SPI1_MspInit 0 */
  163.     /* Peripheral clock enable */
  164.     __HAL_RCC_SPI1_CLK_ENABLE();
  165.  
  166.     /**SPI1 GPIO Configuration    
  167.     PA5     ------> SPI1_SCK
  168.     PA6     ------> SPI1_MISO
  169.     PA7     ------> SPI1_MOSI
  170.     */
  171.     GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;
  172.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  173.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  174.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  175.     GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
  176.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  177.  
  178.   /* USER CODE BEGIN SPI1_MspInit 1 */
  179.  
  180.   /* USER CODE END SPI1_MspInit 1 */
  181.   }
  182.  
  183. }
  184.  
  185. void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
  186. {
  187.  
  188.   if(hspi->Instance==SPI1)
  189.   {
  190.   /* USER CODE BEGIN SPI1_MspDeInit 0 */
  191.  
  192.   /* USER CODE END SPI1_MspDeInit 0 */
  193.     /* Peripheral clock disable */
  194.     __HAL_RCC_SPI1_CLK_DISABLE();
  195.  
  196.     /**SPI1 GPIO Configuration    
  197.     PA5     ------> SPI1_SCK
  198.     PA6     ------> SPI1_MISO
  199.     PA7     ------> SPI1_MOSI
  200.     */
  201.     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
  202.  
  203.   }
  204.   /* USER CODE BEGIN SPI1_MspDeInit 1 */
  205.  
  206.   /* USER CODE END SPI1_MspDeInit 1 */
  207.  
  208. }
  209.  
  210. void HAL_TIM_IC_MspInit(TIM_HandleTypeDef* htim_ic)
  211. {
  212.  
  213.   GPIO_InitTypeDef GPIO_InitStruct;
  214.   if(htim_ic->Instance==TIM2)
  215.   {
  216.   /* USER CODE BEGIN TIM2_MspInit 0 */
  217.  
  218.   /* USER CODE END TIM2_MspInit 0 */
  219.     /* Peripheral clock enable */
  220.     __HAL_RCC_TIM2_CLK_ENABLE();
  221.  
  222.     /**TIM2 GPIO Configuration    
  223.     PA15     ------> TIM2_CH1
  224.     PB3     ------> TIM2_CH2
  225.     */
  226.     GPIO_InitStruct.Pin = CB_Pulse_Pin;
  227.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  228.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  229.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  230.     GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
  231.     HAL_GPIO_Init(CB_Pulse_GPIO_Port, &GPIO_InitStruct);
  232.  
  233.     GPIO_InitStruct.Pin = Timing_Pulse_Pin;
  234.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  235.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  236.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  237.     GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
  238.     HAL_GPIO_Init(Timing_Pulse_GPIO_Port, &GPIO_InitStruct);
  239.  
  240.     /* Peripheral interrupt init */
  241.     HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0);
  242.     HAL_NVIC_EnableIRQ(TIM2_IRQn);
  243.   /* USER CODE BEGIN TIM2_MspInit 1 */
  244.  
  245.   /* USER CODE END TIM2_MspInit 1 */
  246.   }
  247.  
  248. }
  249.  
  250. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
  251. {
  252.  
  253.   if(htim_base->Instance==TIM6)
  254.   {
  255.   /* USER CODE BEGIN TIM6_MspInit 0 */
  256.  
  257.   /* USER CODE END TIM6_MspInit 0 */
  258.     /* Peripheral clock enable */
  259.     __HAL_RCC_TIM6_CLK_ENABLE();
  260.     /* Peripheral interrupt init */
  261.     HAL_NVIC_SetPriority(TIM6_IRQn, 0, 0);
  262.     HAL_NVIC_EnableIRQ(TIM6_IRQn);
  263.   /* USER CODE BEGIN TIM6_MspInit 1 */
  264.  
  265.   /* USER CODE END TIM6_MspInit 1 */
  266.   }
  267.  
  268. }
  269.  
  270. void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
  271. {
  272.  
  273.   GPIO_InitTypeDef GPIO_InitStruct;
  274.   if(htim->Instance==TIM2)
  275.   {
  276.   /* USER CODE BEGIN TIM2_MspPostInit 0 */
  277.  
  278.   /* USER CODE END TIM2_MspPostInit 0 */
  279.  
  280.     /**TIM2 GPIO Configuration    
  281.     PB10     ------> TIM2_CH3
  282.     PB11     ------> TIM2_CH4
  283.     */
  284.     GPIO_InitStruct.Pin = CB_Drive_Pin|INJ_Drive_Pin;
  285.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  286.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  287.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  288.     GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
  289.     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  290.  
  291.   /* USER CODE BEGIN TIM2_MspPostInit 1 */
  292.  
  293.   /* USER CODE END TIM2_MspPostInit 1 */
  294.   }
  295.  
  296. }
  297.  
  298. void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef* htim_ic)
  299. {
  300.  
  301.   if(htim_ic->Instance==TIM2)
  302.   {
  303.   /* USER CODE BEGIN TIM2_MspDeInit 0 */
  304.  
  305.   /* USER CODE END TIM2_MspDeInit 0 */
  306.     /* Peripheral clock disable */
  307.     __HAL_RCC_TIM2_CLK_DISABLE();
  308.  
  309.     /**TIM2 GPIO Configuration    
  310.     PB10     ------> TIM2_CH3
  311.     PB11     ------> TIM2_CH4
  312.     PA15     ------> TIM2_CH1
  313.     PB3     ------> TIM2_CH2
  314.     */
  315.     HAL_GPIO_DeInit(GPIOB, CB_Drive_Pin|INJ_Drive_Pin|Timing_Pulse_Pin);
  316.  
  317.     HAL_GPIO_DeInit(CB_Pulse_GPIO_Port, CB_Pulse_Pin);
  318.  
  319.     /* Peripheral interrupt DeInit*/
  320.     HAL_NVIC_DisableIRQ(TIM2_IRQn);
  321.  
  322.   }
  323.   /* USER CODE BEGIN TIM2_MspDeInit 1 */
  324.  
  325.   /* USER CODE END TIM2_MspDeInit 1 */
  326.  
  327. }
  328.  
  329. void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
  330. {
  331.  
  332.   if(htim_base->Instance==TIM6)
  333.   {
  334.   /* USER CODE BEGIN TIM6_MspDeInit 0 */
  335.  
  336.   /* USER CODE END TIM6_MspDeInit 0 */
  337.     /* Peripheral clock disable */
  338.     __HAL_RCC_TIM6_CLK_DISABLE();
  339.  
  340.     /* Peripheral interrupt DeInit*/
  341.     HAL_NVIC_DisableIRQ(TIM6_IRQn);
  342.  
  343.   }
  344.   /* USER CODE BEGIN TIM6_MspDeInit 1 */
  345.  
  346.   /* USER CODE END TIM6_MspDeInit 1 */
  347.  
  348. }
  349.  
  350. void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  351. {
  352.  
  353.   GPIO_InitTypeDef GPIO_InitStruct;
  354.   if(huart->Instance==USART1)
  355.   {
  356.   /* USER CODE BEGIN USART1_MspInit 0 */
  357.  
  358.   /* USER CODE END USART1_MspInit 0 */
  359.     /* Peripheral clock enable */
  360.     __HAL_RCC_USART1_CLK_ENABLE();
  361.  
  362.     /**USART1 GPIO Configuration    
  363.     PA9     ------> USART1_TX
  364.     PA10     ------> USART1_RX
  365.     */
  366.     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
  367.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  368.     GPIO_InitStruct.Pull = GPIO_PULLUP;
  369.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  370.     GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
  371.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  372.  
  373.     /* Peripheral interrupt init */
  374.     HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
  375.     HAL_NVIC_EnableIRQ(USART1_IRQn);
  376.   /* USER CODE BEGIN USART1_MspInit 1 */
  377.  
  378.   /* USER CODE END USART1_MspInit 1 */
  379.   }
  380.   else if(huart->Instance==USART2)
  381.   {
  382.   /* USER CODE BEGIN USART2_MspInit 0 */
  383.  
  384.   /* USER CODE END USART2_MspInit 0 */
  385.     /* Peripheral clock enable */
  386.     __HAL_RCC_USART2_CLK_ENABLE();
  387.  
  388.     /**USART2 GPIO Configuration    
  389.     PA2     ------> USART2_TX
  390.     PA3     ------> USART2_RX
  391.     */
  392.     GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
  393.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  394.     GPIO_InitStruct.Pull = GPIO_PULLUP;
  395.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  396.     GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
  397.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  398.  
  399.     /* Peripheral interrupt init */
  400.     HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
  401.     HAL_NVIC_EnableIRQ(USART2_IRQn);
  402.   /* USER CODE BEGIN USART2_MspInit 1 */
  403.  
  404.   /* USER CODE END USART2_MspInit 1 */
  405.   }
  406.  
  407. }
  408.  
  409. void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
  410. {
  411.  
  412.   if(huart->Instance==USART1)
  413.   {
  414.   /* USER CODE BEGIN USART1_MspDeInit 0 */
  415.  
  416.   /* USER CODE END USART1_MspDeInit 0 */
  417.     /* Peripheral clock disable */
  418.     __HAL_RCC_USART1_CLK_DISABLE();
  419.  
  420.     /**USART1 GPIO Configuration    
  421.     PA9     ------> USART1_TX
  422.     PA10     ------> USART1_RX
  423.     */
  424.     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
  425.  
  426.     /* Peripheral interrupt DeInit*/
  427.     HAL_NVIC_DisableIRQ(USART1_IRQn);
  428.  
  429.   /* USER CODE BEGIN USART1_MspDeInit 1 */
  430.  
  431.   /* USER CODE END USART1_MspDeInit 1 */
  432.   }
  433.   else if(huart->Instance==USART2)
  434.   {
  435.   /* USER CODE BEGIN USART2_MspDeInit 0 */
  436.  
  437.   /* USER CODE END USART2_MspDeInit 0 */
  438.     /* Peripheral clock disable */
  439.     __HAL_RCC_USART2_CLK_DISABLE();
  440.  
  441.     /**USART2 GPIO Configuration    
  442.     PA2     ------> USART2_TX
  443.     PA3     ------> USART2_RX
  444.     */
  445.     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
  446.  
  447.     /* Peripheral interrupt DeInit*/
  448.     HAL_NVIC_DisableIRQ(USART2_IRQn);
  449.  
  450.   /* USER CODE BEGIN USART2_MspDeInit 1 */
  451.  
  452.   /* USER CODE END USART2_MspDeInit 1 */
  453.   }
  454.  
  455. }
  456.  
  457. /* USER CODE BEGIN 1 */
  458.  
  459. /* USER CODE END 1 */
  460.  
  461. /**
  462.   * @}
  463.   */
  464.  
  465. /**
  466.   * @}
  467.   */
  468.  
  469. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
  470.