1 /* USER CODE BEGIN Header */
\r
3 ******************************************************************************
\r
4 * File Name : stm32l4xx_hal_msp.c
\r
5 * Description : This file provides code for the MSP Initialization
\r
6 * and de-Initialization codes.
\r
7 ******************************************************************************
\r
10 * <h2><center>© Copyright (c) 2019 STMicroelectronics.
\r
11 * All rights reserved.</center></h2>
\r
13 * This software component is licensed by ST under BSD 3-Clause license,
\r
14 * the "License"; You may not use this file except in compliance with the
\r
15 * License. You may obtain a copy of the License at:
\r
16 * opensource.org/licenses/BSD-3-Clause
\r
18 ******************************************************************************
\r
20 /* USER CODE END Header */
\r
22 /* Includes ------------------------------------------------------------------*/
\r
24 /* USER CODE BEGIN Includes */
\r
26 /* USER CODE END Includes */
\r
28 /* Private typedef -----------------------------------------------------------*/
\r
29 /* USER CODE BEGIN TD */
\r
31 /* USER CODE END TD */
\r
33 /* Private define ------------------------------------------------------------*/
\r
34 /* USER CODE BEGIN Define */
\r
36 /* USER CODE END Define */
\r
38 /* Private macro -------------------------------------------------------------*/
\r
39 /* USER CODE BEGIN Macro */
\r
41 /* USER CODE END Macro */
\r
43 /* Private variables ---------------------------------------------------------*/
\r
44 /* USER CODE BEGIN PV */
\r
46 /* USER CODE END PV */
\r
48 /* Private function prototypes -----------------------------------------------*/
\r
49 /* USER CODE BEGIN PFP */
\r
51 /* USER CODE END PFP */
\r
53 /* External functions --------------------------------------------------------*/
\r
54 /* USER CODE BEGIN ExternalFunctions */
\r
56 /* USER CODE END ExternalFunctions */
\r
58 /* USER CODE BEGIN 0 */
\r
60 /* USER CODE END 0 */
\r
62 * Initializes the Global MSP.
\r
64 void HAL_MspInit(void)
\r
66 /* USER CODE BEGIN MspInit 0 */
\r
68 /* USER CODE END MspInit 0 */
\r
70 __HAL_RCC_SYSCFG_CLK_ENABLE();
\r
71 __HAL_RCC_PWR_CLK_ENABLE();
\r
73 /* System interrupt init*/
\r
75 /* USER CODE BEGIN MspInit 1 */
\r
77 /* USER CODE END MspInit 1 */
\r
80 static uint32_t DFSDM1_Init = 0;
\r
82 * @brief DFSDM_Channel MSP Initialization
\r
83 * This function configures the hardware resources used in this example
\r
84 * @param hdfsdm_channel: DFSDM_Channel handle pointer
\r
87 void HAL_DFSDM_ChannelMspInit(DFSDM_Channel_HandleTypeDef* hdfsdm_channel)
\r
89 GPIO_InitTypeDef GPIO_InitStruct = {0};
\r
90 if(DFSDM1_Init == 0)
\r
92 /* USER CODE BEGIN DFSDM1_MspInit 0 */
\r
94 /* USER CODE END DFSDM1_MspInit 0 */
\r
95 /* Peripheral clock enable */
\r
96 __HAL_RCC_DFSDM1_CLK_ENABLE();
\r
98 __HAL_RCC_GPIOE_CLK_ENABLE();
\r
99 /**DFSDM1 GPIO Configuration
\r
100 PE7 ------> DFSDM1_DATIN2
\r
101 PE9 ------> DFSDM1_CKOUT
\r
103 GPIO_InitStruct.Pin = DFSDM1_DATIN2_Pin|DFSDM1_CKOUT_Pin;
\r
104 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
\r
105 GPIO_InitStruct.Pull = GPIO_NOPULL;
\r
106 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
\r
107 GPIO_InitStruct.Alternate = GPIO_AF6_DFSDM1;
\r
108 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
\r
110 /* USER CODE BEGIN DFSDM1_MspInit 1 */
\r
112 /* USER CODE END DFSDM1_MspInit 1 */
\r
118 * @brief DFSDM_Channel MSP De-Initialization
\r
119 * This function freeze the hardware resources used in this example
\r
120 * @param hdfsdm_channel: DFSDM_Channel handle pointer
\r
123 void HAL_DFSDM_ChannelMspDeInit(DFSDM_Channel_HandleTypeDef* hdfsdm_channel)
\r
126 if(DFSDM1_Init == 0)
\r
128 /* USER CODE BEGIN DFSDM1_MspDeInit 0 */
\r
130 /* USER CODE END DFSDM1_MspDeInit 0 */
\r
131 /* Peripheral clock disable */
\r
132 __HAL_RCC_DFSDM1_CLK_DISABLE();
\r
134 /**DFSDM1 GPIO Configuration
\r
135 PE7 ------> DFSDM1_DATIN2
\r
136 PE9 ------> DFSDM1_CKOUT
\r
138 HAL_GPIO_DeInit(GPIOE, DFSDM1_DATIN2_Pin|DFSDM1_CKOUT_Pin);
\r
140 /* USER CODE BEGIN DFSDM1_MspDeInit 1 */
\r
142 /* USER CODE END DFSDM1_MspDeInit 1 */
\r
148 * @brief I2C MSP Initialization
\r
149 * This function configures the hardware resources used in this example
\r
150 * @param hi2c: I2C handle pointer
\r
153 void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
\r
155 GPIO_InitTypeDef GPIO_InitStruct = {0};
\r
156 if(hi2c->Instance==I2C2)
\r
158 /* USER CODE BEGIN I2C2_MspInit 0 */
\r
160 /* USER CODE END I2C2_MspInit 0 */
\r
162 __HAL_RCC_GPIOB_CLK_ENABLE();
\r
163 /**I2C2 GPIO Configuration
\r
164 PB10 ------> I2C2_SCL
\r
165 PB11 ------> I2C2_SDA
\r
167 GPIO_InitStruct.Pin = INTERNAL_I2C2_SCL_Pin|INTERNAL_I2C2_SDA_Pin;
\r
168 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
\r
169 GPIO_InitStruct.Pull = GPIO_PULLUP;
\r
170 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
\r
171 GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;
\r
172 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
\r
174 /* Peripheral clock enable */
\r
175 __HAL_RCC_I2C2_CLK_ENABLE();
\r
176 /* USER CODE BEGIN I2C2_MspInit 1 */
\r
178 /* USER CODE END I2C2_MspInit 1 */
\r
184 * @brief I2C MSP De-Initialization
\r
185 * This function freeze the hardware resources used in this example
\r
186 * @param hi2c: I2C handle pointer
\r
189 void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c)
\r
191 if(hi2c->Instance==I2C2)
\r
193 /* USER CODE BEGIN I2C2_MspDeInit 0 */
\r
195 /* USER CODE END I2C2_MspDeInit 0 */
\r
196 /* Peripheral clock disable */
\r
197 __HAL_RCC_I2C2_CLK_DISABLE();
\r
199 /**I2C2 GPIO Configuration
\r
200 PB10 ------> I2C2_SCL
\r
201 PB11 ------> I2C2_SDA
\r
203 HAL_GPIO_DeInit(GPIOB, INTERNAL_I2C2_SCL_Pin|INTERNAL_I2C2_SDA_Pin);
\r
205 /* USER CODE BEGIN I2C2_MspDeInit 1 */
\r
207 /* USER CODE END I2C2_MspDeInit 1 */
\r
213 * @brief QSPI MSP Initialization
\r
214 * This function configures the hardware resources used in this example
\r
215 * @param hqspi: QSPI handle pointer
\r
218 void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)
\r
220 GPIO_InitTypeDef GPIO_InitStruct = {0};
\r
221 if(hqspi->Instance==QUADSPI)
\r
223 /* USER CODE BEGIN QUADSPI_MspInit 0 */
\r
225 /* USER CODE END QUADSPI_MspInit 0 */
\r
226 /* Peripheral clock enable */
\r
227 __HAL_RCC_QSPI_CLK_ENABLE();
\r
229 __HAL_RCC_GPIOE_CLK_ENABLE();
\r
230 /**QUADSPI GPIO Configuration
\r
231 PE10 ------> QUADSPI_CLK
\r
232 PE11 ------> QUADSPI_NCS
\r
233 PE12 ------> QUADSPI_BK1_IO0
\r
234 PE13 ------> QUADSPI_BK1_IO1
\r
235 PE14 ------> QUADSPI_BK1_IO2
\r
236 PE15 ------> QUADSPI_BK1_IO3
\r
238 GPIO_InitStruct.Pin = QUADSPI_CLK_Pin|QUADSPI_NCS_Pin|OQUADSPI_BK1_IO0_Pin|QUADSPI_BK1_IO1_Pin
\r
239 |QUAD_SPI_BK1_IO2_Pin|QUAD_SPI_BK1_IO3_Pin;
\r
240 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
\r
241 GPIO_InitStruct.Pull = GPIO_NOPULL;
\r
242 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
\r
243 GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
\r
244 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
\r
246 /* USER CODE BEGIN QUADSPI_MspInit 1 */
\r
248 /* USER CODE END QUADSPI_MspInit 1 */
\r
254 * @brief QSPI MSP De-Initialization
\r
255 * This function freeze the hardware resources used in this example
\r
256 * @param hqspi: QSPI handle pointer
\r
259 void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef* hqspi)
\r
261 if(hqspi->Instance==QUADSPI)
\r
263 /* USER CODE BEGIN QUADSPI_MspDeInit 0 */
\r
265 /* USER CODE END QUADSPI_MspDeInit 0 */
\r
266 /* Peripheral clock disable */
\r
267 __HAL_RCC_QSPI_CLK_DISABLE();
\r
269 /**QUADSPI GPIO Configuration
\r
270 PE10 ------> QUADSPI_CLK
\r
271 PE11 ------> QUADSPI_NCS
\r
272 PE12 ------> QUADSPI_BK1_IO0
\r
273 PE13 ------> QUADSPI_BK1_IO1
\r
274 PE14 ------> QUADSPI_BK1_IO2
\r
275 PE15 ------> QUADSPI_BK1_IO3
\r
277 HAL_GPIO_DeInit(GPIOE, QUADSPI_CLK_Pin|QUADSPI_NCS_Pin|OQUADSPI_BK1_IO0_Pin|QUADSPI_BK1_IO1_Pin
\r
278 |QUAD_SPI_BK1_IO2_Pin|QUAD_SPI_BK1_IO3_Pin);
\r
280 /* USER CODE BEGIN QUADSPI_MspDeInit 1 */
\r
282 /* USER CODE END QUADSPI_MspDeInit 1 */
\r
288 * @brief SPI MSP Initialization
\r
289 * This function configures the hardware resources used in this example
\r
290 * @param hspi: SPI handle pointer
\r
293 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
\r
295 GPIO_InitTypeDef GPIO_InitStruct = {0};
\r
296 if(hspi->Instance==SPI3)
\r
298 /* USER CODE BEGIN SPI3_MspInit 0 */
\r
300 /* USER CODE END SPI3_MspInit 0 */
\r
301 /* Peripheral clock enable */
\r
302 __HAL_RCC_SPI3_CLK_ENABLE();
\r
304 __HAL_RCC_GPIOC_CLK_ENABLE();
\r
305 /**SPI3 GPIO Configuration
\r
306 PC10 ------> SPI3_SCK
\r
307 PC11 ------> SPI3_MISO
\r
308 PC12 ------> SPI3_MOSI
\r
310 GPIO_InitStruct.Pin = INTERNAL_SPI3_SCK_Pin|INTERNAL_SPI3_MISO_Pin|INTERNAL_SPI3_MOSI_Pin;
\r
311 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
\r
312 GPIO_InitStruct.Pull = GPIO_NOPULL;
\r
313 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
\r
314 GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
\r
315 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
\r
317 /* USER CODE BEGIN SPI3_MspInit 1 */
\r
319 /* USER CODE END SPI3_MspInit 1 */
\r
325 * @brief SPI MSP De-Initialization
\r
326 * This function freeze the hardware resources used in this example
\r
327 * @param hspi: SPI handle pointer
\r
330 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
\r
332 if(hspi->Instance==SPI3)
\r
334 /* USER CODE BEGIN SPI3_MspDeInit 0 */
\r
336 /* USER CODE END SPI3_MspDeInit 0 */
\r
337 /* Peripheral clock disable */
\r
338 __HAL_RCC_SPI3_CLK_DISABLE();
\r
340 /**SPI3 GPIO Configuration
\r
341 PC10 ------> SPI3_SCK
\r
342 PC11 ------> SPI3_MISO
\r
343 PC12 ------> SPI3_MOSI
\r
345 HAL_GPIO_DeInit(GPIOC, INTERNAL_SPI3_SCK_Pin|INTERNAL_SPI3_MISO_Pin|INTERNAL_SPI3_MOSI_Pin);
\r
347 /* USER CODE BEGIN SPI3_MspDeInit 1 */
\r
349 /* USER CODE END SPI3_MspDeInit 1 */
\r
355 * @brief UART MSP Initialization
\r
356 * This function configures the hardware resources used in this example
\r
357 * @param huart: UART handle pointer
\r
360 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
\r
362 GPIO_InitTypeDef GPIO_InitStruct = {0};
\r
363 if(huart->Instance==USART1)
\r
365 /* USER CODE BEGIN USART1_MspInit 0 */
\r
367 /* USER CODE END USART1_MspInit 0 */
\r
368 /* Peripheral clock enable */
\r
369 __HAL_RCC_USART1_CLK_ENABLE();
\r
371 __HAL_RCC_GPIOB_CLK_ENABLE();
\r
372 /**USART1 GPIO Configuration
\r
373 PB6 ------> USART1_TX
\r
374 PB7 ------> USART1_RX
\r
376 GPIO_InitStruct.Pin = ST_LINK_UART1_TX_Pin|ST_LINK_UART1_RX_Pin;
\r
377 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
\r
378 GPIO_InitStruct.Pull = GPIO_NOPULL;
\r
379 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
\r
380 GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
\r
381 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
\r
383 /* USER CODE BEGIN USART1_MspInit 1 */
\r
385 /* USER CODE END USART1_MspInit 1 */
\r
387 else if(huart->Instance==USART3)
\r
389 /* USER CODE BEGIN USART3_MspInit 0 */
\r
391 /* USER CODE END USART3_MspInit 0 */
\r
392 /* Peripheral clock enable */
\r
393 __HAL_RCC_USART3_CLK_ENABLE();
\r
395 __HAL_RCC_GPIOD_CLK_ENABLE();
\r
396 /**USART3 GPIO Configuration
\r
397 PD8 ------> USART3_TX
\r
398 PD9 ------> USART3_RX
\r
400 GPIO_InitStruct.Pin = INTERNAL_UART3_TX_Pin|INTERNAL_UART3_RX_Pin;
\r
401 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
\r
402 GPIO_InitStruct.Pull = GPIO_NOPULL;
\r
403 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
\r
404 GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
\r
405 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
\r
407 /* USER CODE BEGIN USART3_MspInit 1 */
\r
409 /* USER CODE END USART3_MspInit 1 */
\r
415 * @brief UART MSP De-Initialization
\r
416 * This function freeze the hardware resources used in this example
\r
417 * @param huart: UART handle pointer
\r
420 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
\r
422 if(huart->Instance==USART1)
\r
424 /* USER CODE BEGIN USART1_MspDeInit 0 */
\r
426 /* USER CODE END USART1_MspDeInit 0 */
\r
427 /* Peripheral clock disable */
\r
428 __HAL_RCC_USART1_CLK_DISABLE();
\r
430 /**USART1 GPIO Configuration
\r
431 PB6 ------> USART1_TX
\r
432 PB7 ------> USART1_RX
\r
434 HAL_GPIO_DeInit(GPIOB, ST_LINK_UART1_TX_Pin|ST_LINK_UART1_RX_Pin);
\r
436 /* USER CODE BEGIN USART1_MspDeInit 1 */
\r
438 /* USER CODE END USART1_MspDeInit 1 */
\r
440 else if(huart->Instance==USART3)
\r
442 /* USER CODE BEGIN USART3_MspDeInit 0 */
\r
444 /* USER CODE END USART3_MspDeInit 0 */
\r
445 /* Peripheral clock disable */
\r
446 __HAL_RCC_USART3_CLK_DISABLE();
\r
448 /**USART3 GPIO Configuration
\r
449 PD8 ------> USART3_TX
\r
450 PD9 ------> USART3_RX
\r
452 HAL_GPIO_DeInit(GPIOD, INTERNAL_UART3_TX_Pin|INTERNAL_UART3_RX_Pin);
\r
454 /* USER CODE BEGIN USART3_MspDeInit 1 */
\r
456 /* USER CODE END USART3_MspDeInit 1 */
\r
462 * @brief PCD MSP Initialization
\r
463 * This function configures the hardware resources used in this example
\r
464 * @param hpcd: PCD handle pointer
\r
467 void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)
\r
469 GPIO_InitTypeDef GPIO_InitStruct = {0};
\r
470 if(hpcd->Instance==USB_OTG_FS)
\r
472 /* USER CODE BEGIN USB_OTG_FS_MspInit 0 */
\r
474 /* USER CODE END USB_OTG_FS_MspInit 0 */
\r
476 __HAL_RCC_GPIOA_CLK_ENABLE();
\r
477 /**USB_OTG_FS GPIO Configuration
\r
478 PA9 ------> USB_OTG_FS_VBUS
\r
479 PA10 ------> USB_OTG_FS_ID
\r
480 PA11 ------> USB_OTG_FS_DM
\r
481 PA12 ------> USB_OTG_FS_DP
\r
483 GPIO_InitStruct.Pin = USB_OTG_FS_VBUS_Pin;
\r
484 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
\r
485 GPIO_InitStruct.Pull = GPIO_NOPULL;
\r
486 HAL_GPIO_Init(USB_OTG_FS_VBUS_GPIO_Port, &GPIO_InitStruct);
\r
488 GPIO_InitStruct.Pin = USB_OTG_FS_ID_Pin|USB_OTG_FS_DM_Pin|USB_OTG_FS_DP_Pin;
\r
489 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
\r
490 GPIO_InitStruct.Pull = GPIO_NOPULL;
\r
491 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
\r
492 GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
\r
493 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
\r
495 /* Peripheral clock enable */
\r
496 __HAL_RCC_USB_OTG_FS_CLK_ENABLE();
\r
498 /* Enable VDDUSB */
\r
499 if(__HAL_RCC_PWR_IS_CLK_DISABLED())
\r
501 __HAL_RCC_PWR_CLK_ENABLE();
\r
502 HAL_PWREx_EnableVddUSB();
\r
503 __HAL_RCC_PWR_CLK_DISABLE();
\r
507 HAL_PWREx_EnableVddUSB();
\r
509 /* USER CODE BEGIN USB_OTG_FS_MspInit 1 */
\r
511 /* USER CODE END USB_OTG_FS_MspInit 1 */
\r
517 * @brief PCD MSP De-Initialization
\r
518 * This function freeze the hardware resources used in this example
\r
519 * @param hpcd: PCD handle pointer
\r
522 void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd)
\r
524 if(hpcd->Instance==USB_OTG_FS)
\r
526 /* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */
\r
528 /* USER CODE END USB_OTG_FS_MspDeInit 0 */
\r
529 /* Peripheral clock disable */
\r
530 __HAL_RCC_USB_OTG_FS_CLK_DISABLE();
\r
532 /**USB_OTG_FS GPIO Configuration
\r
533 PA9 ------> USB_OTG_FS_VBUS
\r
534 PA10 ------> USB_OTG_FS_ID
\r
535 PA11 ------> USB_OTG_FS_DM
\r
536 PA12 ------> USB_OTG_FS_DP
\r
538 HAL_GPIO_DeInit(GPIOA, USB_OTG_FS_VBUS_Pin|USB_OTG_FS_ID_Pin|USB_OTG_FS_DM_Pin|USB_OTG_FS_DP_Pin);
\r
540 /* Disable VDDUSB */
\r
541 if(__HAL_RCC_PWR_IS_CLK_DISABLED())
\r
543 __HAL_RCC_PWR_CLK_ENABLE();
\r
544 HAL_PWREx_DisableVddUSB();
\r
545 __HAL_RCC_PWR_CLK_DISABLE();
\r
549 HAL_PWREx_DisableVddUSB();
\r
551 /* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */
\r
553 /* USER CODE END USB_OTG_FS_MspDeInit 1 */
\r
558 /* USER CODE BEGIN 1 */
\r
560 /* USER CODE END 1 */
\r
562 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
\r