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 ** This notice applies to any and all portions of this file
9 * that are not between comment pairs USER CODE BEGIN and
10 * USER CODE END. Other portions of this file, whether
11 * inserted by the user or by software development tools
12 * are owned by their respective copyright owners.
13 *
14 * COPYRIGHT(c) 2018 STMicroelectronics
15 *
16 * Redistribution and use in source and binary forms, with or without modification,
17 * are permitted provided that the following conditions are met:
18 * 1. Redistributions of source code must retain the above copyright notice,
19 * this list of conditions and the following disclaimer.
20 * 2. Redistributions in binary form must reproduce the above copyright notice,
21 * this list of conditions and the following disclaimer in the documentation
22 * and/or other materials provided with the distribution.
23 * 3. Neither the name of STMicroelectronics nor the names of its contributors
24 * may be used to endorse or promote products derived from this software
25 * without specific prior written permission.
26 *
27 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
28 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
30 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
31 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
33 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
34 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
35 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 *
38 ******************************************************************************
39 */
40 /* USER CODE END Header */
41
42 /* Includes ------------------------------------------------------------------*/
43 #include "main.h"
44 /* USER CODE BEGIN Includes */
45 #include <drv_common.h>
46 /* USER CODE END Includes */
47
48 /* Private typedef -----------------------------------------------------------*/
49 /* USER CODE BEGIN TD */
50
51 /* USER CODE END TD */
52
53 /* Private define ------------------------------------------------------------*/
54 /* USER CODE BEGIN Define */
55
56 /* USER CODE END Define */
57
58 /* Private macro -------------------------------------------------------------*/
59 /* USER CODE BEGIN Macro */
60
61 /* USER CODE END Macro */
62
63 /* Private variables ---------------------------------------------------------*/
64 /* USER CODE BEGIN PV */
65
66 /* USER CODE END PV */
67
68 /* Private function prototypes -----------------------------------------------*/
69 /* USER CODE BEGIN PFP */
70
71 /* USER CODE END PFP */
72
73 /* External functions --------------------------------------------------------*/
74 /* USER CODE BEGIN ExternalFunctions */
75
76 /* USER CODE END ExternalFunctions */
77
78 /* USER CODE BEGIN 0 */
79
80 /* USER CODE END 0 */
81 /**
82 * Initializes the Global MSP.
83 */
HAL_MspInit(void)84 void HAL_MspInit(void)
85 {
86 /* USER CODE BEGIN MspInit 0 */
87
88 /* USER CODE END MspInit 0 */
89
90 __HAL_RCC_SYSCFG_CLK_ENABLE();
91 __HAL_RCC_PWR_CLK_ENABLE();
92
93 /* System interrupt init*/
94
95 /* USER CODE BEGIN MspInit 1 */
96
97 /* USER CODE END MspInit 1 */
98 }
99
100 /**
101 * @brief DMA2D MSP Initialization
102 * This function configures the hardware resources used in this example
103 * @param hdma2d: DMA2D handle pointer
104 * @retval None
105 */
HAL_DMA2D_MspInit(DMA2D_HandleTypeDef * hdma2d)106 void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef* hdma2d)
107 {
108
109 if(hdma2d->Instance==DMA2D)
110 {
111 /* USER CODE BEGIN DMA2D_MspInit 0 */
112
113 /* USER CODE END DMA2D_MspInit 0 */
114 /* Peripheral clock enable */
115 __HAL_RCC_DMA2D_CLK_ENABLE();
116 /* USER CODE BEGIN DMA2D_MspInit 1 */
117
118 /* USER CODE END DMA2D_MspInit 1 */
119 }
120
121 }
122
123 /**
124 * @brief DMA2D MSP De-Initialization
125 * This function freeze the hardware resources used in this example
126 * @param hdma2d: DMA2D handle pointer
127 * @retval None
128 */
129
HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef * hdma2d)130 void HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef* hdma2d)
131 {
132
133 if(hdma2d->Instance==DMA2D)
134 {
135 /* USER CODE BEGIN DMA2D_MspDeInit 0 */
136
137 /* USER CODE END DMA2D_MspDeInit 0 */
138 /* Peripheral clock disable */
139 __HAL_RCC_DMA2D_CLK_DISABLE();
140 /* USER CODE BEGIN DMA2D_MspDeInit 1 */
141
142 /* USER CODE END DMA2D_MspDeInit 1 */
143 }
144
145 }
146
147 /**
148 * @brief DSI MSP Initialization
149 * This function configures the hardware resources used in this example
150 * @param hdsi: DSI handle pointer
151 * @retval None
152 */
HAL_DSI_MspInit(DSI_HandleTypeDef * hdsi)153 void HAL_DSI_MspInit(DSI_HandleTypeDef* hdsi)
154 {
155
156 if(hdsi->Instance==DSI)
157 {
158 /* USER CODE BEGIN DSI_MspInit 0 */
159
160 /* USER CODE END DSI_MspInit 0 */
161 /* Peripheral clock enable */
162 __HAL_RCC_DSI_CLK_ENABLE();
163 /* USER CODE BEGIN DSI_MspInit 1 */
164
165 /* USER CODE END DSI_MspInit 1 */
166 }
167
168 }
169
170 /**
171 * @brief DSI MSP De-Initialization
172 * This function freeze the hardware resources used in this example
173 * @param hdsi: DSI handle pointer
174 * @retval None
175 */
176
HAL_DSI_MspDeInit(DSI_HandleTypeDef * hdsi)177 void HAL_DSI_MspDeInit(DSI_HandleTypeDef* hdsi)
178 {
179
180 if(hdsi->Instance==DSI)
181 {
182 /* USER CODE BEGIN DSI_MspDeInit 0 */
183
184 /* USER CODE END DSI_MspDeInit 0 */
185 /* Peripheral clock disable */
186 __HAL_RCC_DSI_CLK_DISABLE();
187 /* USER CODE BEGIN DSI_MspDeInit 1 */
188
189 /* USER CODE END DSI_MspDeInit 1 */
190 }
191
192 }
193
194 /**
195 * @brief GFXMMU MSP Initialization
196 * This function configures the hardware resources used in this example
197 * @param hgfxmmu: GFXMMU handle pointer
198 * @retval None
199 */
HAL_GFXMMU_MspInit(GFXMMU_HandleTypeDef * hgfxmmu)200 void HAL_GFXMMU_MspInit(GFXMMU_HandleTypeDef* hgfxmmu)
201 {
202
203 if(hgfxmmu->Instance==GFXMMU)
204 {
205 /* USER CODE BEGIN GFXMMU_MspInit 0 */
206
207 /* USER CODE END GFXMMU_MspInit 0 */
208 /* Peripheral clock enable */
209 __HAL_RCC_GFXMMU_CLK_ENABLE();
210 /* USER CODE BEGIN GFXMMU_MspInit 1 */
211
212 /* USER CODE END GFXMMU_MspInit 1 */
213 }
214
215 }
216
217 /**
218 * @brief GFXMMU MSP De-Initialization
219 * This function freeze the hardware resources used in this example
220 * @param hgfxmmu: GFXMMU handle pointer
221 * @retval None
222 */
223
HAL_GFXMMU_MspDeInit(GFXMMU_HandleTypeDef * hgfxmmu)224 void HAL_GFXMMU_MspDeInit(GFXMMU_HandleTypeDef* hgfxmmu)
225 {
226
227 if(hgfxmmu->Instance==GFXMMU)
228 {
229 /* USER CODE BEGIN GFXMMU_MspDeInit 0 */
230
231 /* USER CODE END GFXMMU_MspDeInit 0 */
232 /* Peripheral clock disable */
233 __HAL_RCC_GFXMMU_CLK_DISABLE();
234 /* USER CODE BEGIN GFXMMU_MspDeInit 1 */
235
236 /* USER CODE END GFXMMU_MspDeInit 1 */
237 }
238
239 }
240
241 /**
242 * @brief LTDC MSP Initialization
243 * This function configures the hardware resources used in this example
244 * @param hltdc: LTDC handle pointer
245 * @retval None
246 */
HAL_LTDC_MspInit(LTDC_HandleTypeDef * hltdc)247 void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
248 {
249
250 if(hltdc->Instance==LTDC)
251 {
252 /* USER CODE BEGIN LTDC_MspInit 0 */
253
254 /* USER CODE END LTDC_MspInit 0 */
255 /* Peripheral clock enable */
256 __HAL_RCC_LTDC_CLK_ENABLE();
257 /* USER CODE BEGIN LTDC_MspInit 1 */
258
259 /* USER CODE END LTDC_MspInit 1 */
260 }
261
262 }
263
264 /**
265 * @brief LTDC MSP De-Initialization
266 * This function freeze the hardware resources used in this example
267 * @param hltdc: LTDC handle pointer
268 * @retval None
269 */
270
HAL_LTDC_MspDeInit(LTDC_HandleTypeDef * hltdc)271 void HAL_LTDC_MspDeInit(LTDC_HandleTypeDef* hltdc)
272 {
273
274 if(hltdc->Instance==LTDC)
275 {
276 /* USER CODE BEGIN LTDC_MspDeInit 0 */
277
278 /* USER CODE END LTDC_MspDeInit 0 */
279 /* Peripheral clock disable */
280 __HAL_RCC_LTDC_CLK_DISABLE();
281 /* USER CODE BEGIN LTDC_MspDeInit 1 */
282
283 /* USER CODE END LTDC_MspDeInit 1 */
284 }
285
286 }
287
288 /**
289 * @brief UART MSP Initialization
290 * This function configures the hardware resources used in this example
291 * @param huart: UART handle pointer
292 * @retval None
293 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)294 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
295 {
296
297 GPIO_InitTypeDef GPIO_InitStruct = {0};
298 if(huart->Instance==USART3)
299 {
300 /* USER CODE BEGIN USART3_MspInit 0 */
301
302 /* USER CODE END USART3_MspInit 0 */
303 /* Peripheral clock enable */
304 __HAL_RCC_USART3_CLK_ENABLE();
305
306 __HAL_RCC_GPIOB_CLK_ENABLE();
307 /**USART3 GPIO Configuration
308 PB11 ------> USART3_RX
309 PB10 ------> USART3_TX
310 */
311 GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_10;
312 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
313 GPIO_InitStruct.Pull = GPIO_PULLUP;
314 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
315 GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
316 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
317
318 /* USER CODE BEGIN USART3_MspInit 1 */
319
320 /* USER CODE END USART3_MspInit 1 */
321 }
322
323 }
324
325 /**
326 * @brief UART MSP De-Initialization
327 * This function freeze the hardware resources used in this example
328 * @param huart: UART handle pointer
329 * @retval None
330 */
331
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)332 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
333 {
334
335 if(huart->Instance==USART3)
336 {
337 /* USER CODE BEGIN USART3_MspDeInit 0 */
338
339 /* USER CODE END USART3_MspDeInit 0 */
340 /* Peripheral clock disable */
341 __HAL_RCC_USART3_CLK_DISABLE();
342
343 /**USART3 GPIO Configuration
344 PB11 ------> USART3_RX
345 PB10 ------> USART3_TX
346 */
347 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_11|GPIO_PIN_10);
348
349 /* USER CODE BEGIN USART3_MspDeInit 1 */
350
351 /* USER CODE END USART3_MspDeInit 1 */
352 }
353
354 }
355
356 static uint32_t FMC_Initialized = 0;
357
HAL_FMC_MspInit(void)358 static void HAL_FMC_MspInit(void){
359 /* USER CODE BEGIN FMC_MspInit 0 */
360
361 /* USER CODE END FMC_MspInit 0 */
362 GPIO_InitTypeDef GPIO_InitStruct;
363 if (FMC_Initialized) {
364 return;
365 }
366 FMC_Initialized = 1;
367 /* Peripheral clock enable */
368 __HAL_RCC_FMC_CLK_ENABLE();
369
370 /** FMC GPIO Configuration
371 PE0 ------> FMC_NBL0
372 PE1 ------> FMC_NBL1
373 PD0 ------> FMC_D2
374 PD4 ------> FMC_NOE
375 PD1 ------> FMC_D3
376 PE4 ------> FMC_A20
377 PE3 ------> FMC_A19
378 PD5 ------> FMC_NWE
379 PE5 ------> FMC_A21
380 PF2 ------> FMC_A2
381 PF1 ------> FMC_A1
382 PF0 ------> FMC_A0
383 PD7 ------> FMC_NE1
384 PF3 ------> FMC_A3
385 PF4 ------> FMC_A4
386 PF5 ------> FMC_A5
387 PG4 ------> FMC_A14
388 PG3 ------> FMC_A13
389 PG5 ------> FMC_A15
390 PG1 ------> FMC_A11
391 PE10 ------> FMC_D7
392 PD13 ------> FMC_A18
393 PG2 ------> FMC_A12
394 PD15 ------> FMC_D1
395 PD14 ------> FMC_D0
396 PG0 ------> FMC_A10
397 PE9 ------> FMC_D6
398 PE15 ------> FMC_D12
399 PD12 ------> FMC_A17
400 PD11 ------> FMC_A16
401 PD10 ------> FMC_D15
402 PF15 ------> FMC_A9
403 PE8 ------> FMC_D5
404 PE14 ------> FMC_D11
405 PD9 ------> FMC_D14
406 PD8 ------> FMC_D13
407 PF14 ------> FMC_A8
408 PE7 ------> FMC_D4
409 PE13 ------> FMC_D10
410 PF13 ------> FMC_A7
411 PE12 ------> FMC_D9
412 PF12 ------> FMC_A6
413 PE11 ------> FMC_D8
414 */
415 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_3
416 |GPIO_PIN_5|GPIO_PIN_10|GPIO_PIN_9|GPIO_PIN_15
417 |GPIO_PIN_8|GPIO_PIN_14|GPIO_PIN_7|GPIO_PIN_13
418 |GPIO_PIN_12|GPIO_PIN_11;
419 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
420 GPIO_InitStruct.Pull = GPIO_NOPULL;
421 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
422 GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
423 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
424
425 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_4|GPIO_PIN_1|GPIO_PIN_5
426 |GPIO_PIN_7|GPIO_PIN_13|GPIO_PIN_15|GPIO_PIN_14
427 |GPIO_PIN_12|GPIO_PIN_11|GPIO_PIN_10|GPIO_PIN_9
428 |GPIO_PIN_8;
429 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
430 GPIO_InitStruct.Pull = GPIO_NOPULL;
431 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
432 GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
433 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
434
435 GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0|GPIO_PIN_3
436 |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_15|GPIO_PIN_14
437 |GPIO_PIN_13|GPIO_PIN_12;
438 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
439 GPIO_InitStruct.Pull = GPIO_NOPULL;
440 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
441 GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
442 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
443
444 GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_3|GPIO_PIN_5|GPIO_PIN_1
445 |GPIO_PIN_2|GPIO_PIN_0;
446 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
447 GPIO_InitStruct.Pull = GPIO_NOPULL;
448 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
449 GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
450 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
451
452 /* USER CODE BEGIN FMC_MspInit 1 */
453
454 /* USER CODE END FMC_MspInit 1 */
455 }
456
HAL_SRAM_MspInit(SRAM_HandleTypeDef * hsram)457 void HAL_SRAM_MspInit(SRAM_HandleTypeDef* hsram){
458 /* USER CODE BEGIN SRAM_MspInit 0 */
459
460 /* USER CODE END SRAM_MspInit 0 */
461 HAL_FMC_MspInit();
462 /* USER CODE BEGIN SRAM_MspInit 1 */
463
464 /* USER CODE END SRAM_MspInit 1 */
465 }
466
467 static uint32_t FMC_DeInitialized = 0;
468
HAL_FMC_MspDeInit(void)469 static void HAL_FMC_MspDeInit(void){
470 /* USER CODE BEGIN FMC_MspDeInit 0 */
471
472 /* USER CODE END FMC_MspDeInit 0 */
473 if (FMC_DeInitialized) {
474 return;
475 }
476 FMC_DeInitialized = 1;
477 /* Peripheral clock enable */
478 __HAL_RCC_FMC_CLK_DISABLE();
479
480 /** FMC GPIO Configuration
481 PE0 ------> FMC_NBL0
482 PE1 ------> FMC_NBL1
483 PD0 ------> FMC_D2
484 PD4 ------> FMC_NOE
485 PD1 ------> FMC_D3
486 PE4 ------> FMC_A20
487 PE3 ------> FMC_A19
488 PD5 ------> FMC_NWE
489 PE5 ------> FMC_A21
490 PF2 ------> FMC_A2
491 PF1 ------> FMC_A1
492 PF0 ------> FMC_A0
493 PD7 ------> FMC_NE1
494 PF3 ------> FMC_A3
495 PF4 ------> FMC_A4
496 PF5 ------> FMC_A5
497 PG4 ------> FMC_A14
498 PG3 ------> FMC_A13
499 PG5 ------> FMC_A15
500 PG1 ------> FMC_A11
501 PE10 ------> FMC_D7
502 PD13 ------> FMC_A18
503 PG2 ------> FMC_A12
504 PD15 ------> FMC_D1
505 PD14 ------> FMC_D0
506 PG0 ------> FMC_A10
507 PE9 ------> FMC_D6
508 PE15 ------> FMC_D12
509 PD12 ------> FMC_A17
510 PD11 ------> FMC_A16
511 PD10 ------> FMC_D15
512 PF15 ------> FMC_A9
513 PE8 ------> FMC_D5
514 PE14 ------> FMC_D11
515 PD9 ------> FMC_D14
516 PD8 ------> FMC_D13
517 PF14 ------> FMC_A8
518 PE7 ------> FMC_D4
519 PE13 ------> FMC_D10
520 PF13 ------> FMC_A7
521 PE12 ------> FMC_D9
522 PF12 ------> FMC_A6
523 PE11 ------> FMC_D8
524 */
525 HAL_GPIO_DeInit(GPIOE, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_3
526 |GPIO_PIN_5|GPIO_PIN_10|GPIO_PIN_9|GPIO_PIN_15
527 |GPIO_PIN_8|GPIO_PIN_14|GPIO_PIN_7|GPIO_PIN_13
528 |GPIO_PIN_12|GPIO_PIN_11);
529
530 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_0|GPIO_PIN_4|GPIO_PIN_1|GPIO_PIN_5
531 |GPIO_PIN_7|GPIO_PIN_13|GPIO_PIN_15|GPIO_PIN_14
532 |GPIO_PIN_12|GPIO_PIN_11|GPIO_PIN_10|GPIO_PIN_9
533 |GPIO_PIN_8);
534
535 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0|GPIO_PIN_3
536 |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_15|GPIO_PIN_14
537 |GPIO_PIN_13|GPIO_PIN_12);
538
539 HAL_GPIO_DeInit(GPIOG, GPIO_PIN_4|GPIO_PIN_3|GPIO_PIN_5|GPIO_PIN_1
540 |GPIO_PIN_2|GPIO_PIN_0);
541
542 /* USER CODE BEGIN FMC_MspDeInit 1 */
543
544 /* USER CODE END FMC_MspDeInit 1 */
545 }
546
HAL_SRAM_MspDeInit(SRAM_HandleTypeDef * hsram)547 void HAL_SRAM_MspDeInit(SRAM_HandleTypeDef* hsram){
548 /* USER CODE BEGIN SRAM_MspDeInit 0 */
549
550 /* USER CODE END SRAM_MspDeInit 0 */
551 HAL_FMC_MspDeInit();
552 /* USER CODE BEGIN SRAM_MspDeInit 1 */
553
554 /* USER CODE END SRAM_MspDeInit 1 */
555 }
556
557 /* USER CODE BEGIN 1 */
558
559 /* USER CODE END 1 */
560
561 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
562