1 /* USER CODE BEGIN Header */
2 /**
3   ******************************************************************************
4   * File Name          : stm32l4xx_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) 2019 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 #include <drv_common.h>
26 /* USER CODE END Includes */
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   * Initializes the Global MSP.
63   */
HAL_MspInit(void)64 void HAL_MspInit(void)
65 {
66   /* USER CODE BEGIN MspInit 0 */
67 
68   /* USER CODE END MspInit 0 */
69 
70   __HAL_RCC_SYSCFG_CLK_ENABLE();
71   __HAL_RCC_PWR_CLK_ENABLE();
72 
73   /* System interrupt init*/
74 
75   /* USER CODE BEGIN MspInit 1 */
76 
77   /* USER CODE END MspInit 1 */
78 }
79 
80 /**
81 * @brief SPI MSP Initialization
82 * This function configures the hardware resources used in this example
83 * @param hspi: SPI handle pointer
84 * @retval None
85 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)86 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
87 {
88   GPIO_InitTypeDef GPIO_InitStruct = {0};
89   if(hspi->Instance==SPI1)
90   {
91   /* USER CODE BEGIN SPI1_MspInit 0 */
92 
93   /* USER CODE END SPI1_MspInit 0 */
94     /* Peripheral clock enable */
95     __HAL_RCC_SPI1_CLK_ENABLE();
96 
97     __HAL_RCC_GPIOA_CLK_ENABLE();
98     /**SPI1 GPIO Configuration
99     PA1     ------> SPI1_SCK
100     PA6     ------> SPI1_MISO
101     PA7     ------> SPI1_MOSI
102     */
103     GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_6|GPIO_PIN_7;
104     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
105     GPIO_InitStruct.Pull = GPIO_NOPULL;
106     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
107     GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
108     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
109 
110   /* USER CODE BEGIN SPI1_MspInit 1 */
111 
112   /* USER CODE END SPI1_MspInit 1 */
113   }
114 
115 }
116 
117 /**
118 * @brief SPI MSP De-Initialization
119 * This function freeze the hardware resources used in this example
120 * @param hspi: SPI handle pointer
121 * @retval None
122 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)123 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
124 {
125   if(hspi->Instance==SPI1)
126   {
127   /* USER CODE BEGIN SPI1_MspDeInit 0 */
128 
129   /* USER CODE END SPI1_MspDeInit 0 */
130     /* Peripheral clock disable */
131     __HAL_RCC_SPI1_CLK_DISABLE();
132 
133     /**SPI1 GPIO Configuration
134     PA1     ------> SPI1_SCK
135     PA6     ------> SPI1_MISO
136     PA7     ------> SPI1_MOSI
137     */
138     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1|GPIO_PIN_6|GPIO_PIN_7);
139 
140   /* USER CODE BEGIN SPI1_MspDeInit 1 */
141 
142   /* USER CODE END SPI1_MspDeInit 1 */
143   }
144 
145 }
146 
147 /**
148 * @brief UART MSP Initialization
149 * This function configures the hardware resources used in this example
150 * @param huart: UART handle pointer
151 * @retval None
152 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)153 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
154 {
155   GPIO_InitTypeDef GPIO_InitStruct = {0};
156   if(huart->Instance==USART1)
157   {
158   /* USER CODE BEGIN USART1_MspInit 0 */
159 
160   /* USER CODE END USART1_MspInit 0 */
161     /* Peripheral clock enable */
162     __HAL_RCC_USART1_CLK_ENABLE();
163 
164     __HAL_RCC_GPIOA_CLK_ENABLE();
165     /**USART1 GPIO Configuration
166     PA9     ------> USART1_TX
167     PA10     ------> USART1_RX
168     */
169     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
170     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
171     GPIO_InitStruct.Pull = GPIO_PULLUP;
172     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
173     GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
174     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
175 
176   /* USER CODE BEGIN USART1_MspInit 1 */
177 
178   /* USER CODE END USART1_MspInit 1 */
179   }
180   else if(huart->Instance==USART2)
181   {
182   /* USER CODE BEGIN USART2_MspInit 0 */
183 
184   /* USER CODE END USART2_MspInit 0 */
185     /* Peripheral clock enable */
186     __HAL_RCC_USART2_CLK_ENABLE();
187 
188     __HAL_RCC_GPIOA_CLK_ENABLE();
189     /**USART2 GPIO Configuration
190     PA2     ------> USART2_TX
191     PA3     ------> USART2_RX
192     */
193     GPIO_InitStruct.Pin = USART_TX_Pin|USART_RX_Pin;
194     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
195     GPIO_InitStruct.Pull = GPIO_PULLUP;
196     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
197     GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
198     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
199 
200   /* USER CODE BEGIN USART2_MspInit 1 */
201 
202   /* USER CODE END USART2_MspInit 1 */
203   }
204 
205 }
206 
207 /**
208 * @brief UART MSP De-Initialization
209 * This function freeze the hardware resources used in this example
210 * @param huart: UART handle pointer
211 * @retval None
212 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)213 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
214 {
215   if(huart->Instance==USART1)
216   {
217   /* USER CODE BEGIN USART1_MspDeInit 0 */
218 
219   /* USER CODE END USART1_MspDeInit 0 */
220     /* Peripheral clock disable */
221     __HAL_RCC_USART1_CLK_DISABLE();
222 
223     /**USART1 GPIO Configuration
224     PA9     ------> USART1_TX
225     PA10     ------> USART1_RX
226     */
227     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
228 
229   /* USER CODE BEGIN USART1_MspDeInit 1 */
230 
231   /* USER CODE END USART1_MspDeInit 1 */
232   }
233   else if(huart->Instance==USART2)
234   {
235   /* USER CODE BEGIN USART2_MspDeInit 0 */
236 
237   /* USER CODE END USART2_MspDeInit 0 */
238     /* Peripheral clock disable */
239     __HAL_RCC_USART2_CLK_DISABLE();
240 
241     /**USART2 GPIO Configuration
242     PA2     ------> USART2_TX
243     PA3     ------> USART2_RX
244     */
245     HAL_GPIO_DeInit(GPIOA, USART_TX_Pin|USART_RX_Pin);
246 
247   /* USER CODE BEGIN USART2_MspDeInit 1 */
248 
249   /* USER CODE END USART2_MspDeInit 1 */
250   }
251 
252 }
253 
254 /* USER CODE BEGIN 1 */
255 
256 /* USER CODE END 1 */
257 
258 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
259