1 /* USER CODE BEGIN Header */
2 /**
3   ******************************************************************************
4   * File Name          : stm32h7xx_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) 2020 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 void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
63                     /**
64   * Initializes the Global MSP.
65   */
HAL_MspInit(void)66 void HAL_MspInit(void)
67 {
68   /* USER CODE BEGIN MspInit 0 */
69 
70   /* USER CODE END MspInit 0 */
71 
72   __HAL_RCC_SYSCFG_CLK_ENABLE();
73 
74   /* System interrupt init*/
75 
76   /* USER CODE BEGIN MspInit 1 */
77 
78   /* USER CODE END MspInit 1 */
79 }
80 
81 /**
82 * @brief QSPI MSP Initialization
83 * This function configures the hardware resources used in this example
84 * @param hqspi: QSPI handle pointer
85 * @retval None
86 */
HAL_QSPI_MspInit(QSPI_HandleTypeDef * hqspi)87 void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)
88 {
89   GPIO_InitTypeDef GPIO_InitStruct = {0};
90   if(hqspi->Instance==QUADSPI)
91   {
92   /* USER CODE BEGIN QUADSPI_MspInit 0 */
93 
94   /* USER CODE END QUADSPI_MspInit 0 */
95     /* Peripheral clock enable */
96     __HAL_RCC_QSPI_CLK_ENABLE();
97 
98     __HAL_RCC_GPIOE_CLK_ENABLE();
99     __HAL_RCC_GPIOB_CLK_ENABLE();
100     __HAL_RCC_GPIOD_CLK_ENABLE();
101     /**QUADSPI GPIO Configuration
102     PE2     ------> QUADSPI_BK1_IO2
103     PB2     ------> QUADSPI_CLK
104     PD11     ------> QUADSPI_BK1_IO0
105     PD12     ------> QUADSPI_BK1_IO1
106     PD13     ------> QUADSPI_BK1_IO3
107     PB6     ------> QUADSPI_BK1_NCS
108     */
109     GPIO_InitStruct.Pin = GPIO_PIN_2;
110     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
111     GPIO_InitStruct.Pull = GPIO_NOPULL;
112     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
113     GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI;
114     HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
115 
116     GPIO_InitStruct.Pin = GPIO_PIN_2;
117     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
118     GPIO_InitStruct.Pull = GPIO_NOPULL;
119     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
120     GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI;
121     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
122 
123     GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13;
124     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
125     GPIO_InitStruct.Pull = GPIO_NOPULL;
126     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
127     GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI;
128     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
129 
130     GPIO_InitStruct.Pin = GPIO_PIN_6;
131     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
132     GPIO_InitStruct.Pull = GPIO_NOPULL;
133     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
134     GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
135     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
136 
137   /* USER CODE BEGIN QUADSPI_MspInit 1 */
138 
139   /* USER CODE END QUADSPI_MspInit 1 */
140   }
141 
142 }
143 
144 /**
145 * @brief QSPI MSP De-Initialization
146 * This function freeze the hardware resources used in this example
147 * @param hqspi: QSPI handle pointer
148 * @retval None
149 */
HAL_QSPI_MspDeInit(QSPI_HandleTypeDef * hqspi)150 void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef* hqspi)
151 {
152   if(hqspi->Instance==QUADSPI)
153   {
154   /* USER CODE BEGIN QUADSPI_MspDeInit 0 */
155 
156   /* USER CODE END QUADSPI_MspDeInit 0 */
157     /* Peripheral clock disable */
158     __HAL_RCC_QSPI_CLK_DISABLE();
159 
160     /**QUADSPI GPIO Configuration
161     PE2     ------> QUADSPI_BK1_IO2
162     PB2     ------> QUADSPI_CLK
163     PD11     ------> QUADSPI_BK1_IO0
164     PD12     ------> QUADSPI_BK1_IO1
165     PD13     ------> QUADSPI_BK1_IO3
166     PB6     ------> QUADSPI_BK1_NCS
167     */
168     HAL_GPIO_DeInit(GPIOE, GPIO_PIN_2);
169 
170     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_2|GPIO_PIN_6);
171 
172     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13);
173 
174   /* USER CODE BEGIN QUADSPI_MspDeInit 1 */
175 
176   /* USER CODE END QUADSPI_MspDeInit 1 */
177   }
178 
179 }
180 
181 /**
182 * @brief RTC MSP Initialization
183 * This function configures the hardware resources used in this example
184 * @param hrtc: RTC handle pointer
185 * @retval None
186 */
HAL_RTC_MspInit(RTC_HandleTypeDef * hrtc)187 void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
188 {
189   if(hrtc->Instance==RTC)
190   {
191   /* USER CODE BEGIN RTC_MspInit 0 */
192 
193   /* USER CODE END RTC_MspInit 0 */
194     /* Peripheral clock enable */
195     __HAL_RCC_RTC_ENABLE();
196   /* USER CODE BEGIN RTC_MspInit 1 */
197 
198   /* USER CODE END RTC_MspInit 1 */
199   }
200 
201 }
202 
203 /**
204 * @brief RTC MSP De-Initialization
205 * This function freeze the hardware resources used in this example
206 * @param hrtc: RTC handle pointer
207 * @retval None
208 */
HAL_RTC_MspDeInit(RTC_HandleTypeDef * hrtc)209 void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
210 {
211   if(hrtc->Instance==RTC)
212   {
213   /* USER CODE BEGIN RTC_MspDeInit 0 */
214 
215   /* USER CODE END RTC_MspDeInit 0 */
216     /* Peripheral clock disable */
217     __HAL_RCC_RTC_DISABLE();
218   /* USER CODE BEGIN RTC_MspDeInit 1 */
219 
220   /* USER CODE END RTC_MspDeInit 1 */
221   }
222 
223 }
224 
225 /**
226 * @brief SPI MSP Initialization
227 * This function configures the hardware resources used in this example
228 * @param hspi: SPI handle pointer
229 * @retval None
230 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)231 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
232 {
233   GPIO_InitTypeDef GPIO_InitStruct = {0};
234   if(hspi->Instance==SPI1)
235   {
236   /* USER CODE BEGIN SPI1_MspInit 0 */
237 
238   /* USER CODE END SPI1_MspInit 0 */
239     /* Peripheral clock enable */
240     __HAL_RCC_SPI1_CLK_ENABLE();
241 
242     __HAL_RCC_GPIOD_CLK_ENABLE();
243     __HAL_RCC_GPIOB_CLK_ENABLE();
244     /**SPI1 GPIO Configuration
245     PD7     ------> SPI1_MOSI
246     PB3 (JTDO/TRACESWO)     ------> SPI1_SCK
247     PB4 (NJTRST)     ------> SPI1_MISO
248     */
249     GPIO_InitStruct.Pin = GPIO_PIN_7;
250     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
251     GPIO_InitStruct.Pull = GPIO_NOPULL;
252     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
253     GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
254     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
255 
256     GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4;
257     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
258     GPIO_InitStruct.Pull = GPIO_NOPULL;
259     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
260     GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
261     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
262 
263   /* USER CODE BEGIN SPI1_MspInit 1 */
264 
265   /* USER CODE END SPI1_MspInit 1 */
266   }
267   else if(hspi->Instance==SPI4)
268   {
269   /* USER CODE BEGIN SPI4_MspInit 0 */
270 
271   /* USER CODE END SPI4_MspInit 0 */
272     /* Peripheral clock enable */
273     __HAL_RCC_SPI4_CLK_ENABLE();
274 
275     __HAL_RCC_GPIOE_CLK_ENABLE();
276     /**SPI4 GPIO Configuration
277     PE12     ------> SPI4_SCK
278     PE14     ------> SPI4_MOSI
279     */
280     GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_14;
281     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
282     GPIO_InitStruct.Pull = GPIO_NOPULL;
283     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
284     GPIO_InitStruct.Alternate = GPIO_AF5_SPI4;
285     HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
286 
287   /* USER CODE BEGIN SPI4_MspInit 1 */
288 
289   /* USER CODE END SPI4_MspInit 1 */
290   }
291 
292 }
293 
294 /**
295 * @brief SPI MSP De-Initialization
296 * This function freeze the hardware resources used in this example
297 * @param hspi: SPI handle pointer
298 * @retval None
299 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)300 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
301 {
302   if(hspi->Instance==SPI1)
303   {
304   /* USER CODE BEGIN SPI1_MspDeInit 0 */
305 
306   /* USER CODE END SPI1_MspDeInit 0 */
307     /* Peripheral clock disable */
308     __HAL_RCC_SPI1_CLK_DISABLE();
309 
310     /**SPI1 GPIO Configuration
311     PD7     ------> SPI1_MOSI
312     PB3 (JTDO/TRACESWO)     ------> SPI1_SCK
313     PB4 (NJTRST)     ------> SPI1_MISO
314     */
315     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_7);
316 
317     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_3|GPIO_PIN_4);
318 
319   /* USER CODE BEGIN SPI1_MspDeInit 1 */
320 
321   /* USER CODE END SPI1_MspDeInit 1 */
322   }
323   else if(hspi->Instance==SPI4)
324   {
325   /* USER CODE BEGIN SPI4_MspDeInit 0 */
326 
327   /* USER CODE END SPI4_MspDeInit 0 */
328     /* Peripheral clock disable */
329     __HAL_RCC_SPI4_CLK_DISABLE();
330 
331     /**SPI4 GPIO Configuration
332     PE12     ------> SPI4_SCK
333     PE14     ------> SPI4_MOSI
334     */
335     HAL_GPIO_DeInit(GPIOE, GPIO_PIN_12|GPIO_PIN_14);
336 
337   /* USER CODE BEGIN SPI4_MspDeInit 1 */
338 
339   /* USER CODE END SPI4_MspDeInit 1 */
340   }
341 
342 }
343 
344 /**
345 * @brief TIM_Base MSP Initialization
346 * This function configures the hardware resources used in this example
347 * @param htim_base: TIM_Base handle pointer
348 * @retval None
349 */
HAL_TIM_Base_MspInit(TIM_HandleTypeDef * htim_base)350 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
351 {
352   if(htim_base->Instance==TIM1)
353   {
354   /* USER CODE BEGIN TIM1_MspInit 0 */
355 
356   /* USER CODE END TIM1_MspInit 0 */
357     /* Peripheral clock enable */
358     __HAL_RCC_TIM1_CLK_ENABLE();
359   /* USER CODE BEGIN TIM1_MspInit 1 */
360 
361   /* USER CODE END TIM1_MspInit 1 */
362   }
363 
364 }
365 
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)366 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
367 {
368   GPIO_InitTypeDef GPIO_InitStruct = {0};
369   if(htim->Instance==TIM1)
370   {
371   /* USER CODE BEGIN TIM1_MspPostInit 0 */
372 
373   /* USER CODE END TIM1_MspPostInit 0 */
374 
375     __HAL_RCC_GPIOE_CLK_ENABLE();
376     /**TIM1 GPIO Configuration
377     PE10     ------> TIM1_CH2N
378     */
379     GPIO_InitStruct.Pin = LCD_LED_Pin;
380     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
381     GPIO_InitStruct.Pull = GPIO_NOPULL;
382     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
383     GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
384     HAL_GPIO_Init(LCD_LED_GPIO_Port, &GPIO_InitStruct);
385 
386   /* USER CODE BEGIN TIM1_MspPostInit 1 */
387 
388   /* USER CODE END TIM1_MspPostInit 1 */
389   }
390 
391 }
392 /**
393 * @brief TIM_Base MSP De-Initialization
394 * This function freeze the hardware resources used in this example
395 * @param htim_base: TIM_Base handle pointer
396 * @retval None
397 */
HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef * htim_base)398 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
399 {
400   if(htim_base->Instance==TIM1)
401   {
402   /* USER CODE BEGIN TIM1_MspDeInit 0 */
403 
404   /* USER CODE END TIM1_MspDeInit 0 */
405     /* Peripheral clock disable */
406     __HAL_RCC_TIM1_CLK_DISABLE();
407   /* USER CODE BEGIN TIM1_MspDeInit 1 */
408 
409   /* USER CODE END TIM1_MspDeInit 1 */
410   }
411 
412 }
413 
414 /**
415 * @brief UART MSP Initialization
416 * This function configures the hardware resources used in this example
417 * @param huart: UART handle pointer
418 * @retval None
419 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)420 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
421 {
422   GPIO_InitTypeDef GPIO_InitStruct = {0};
423   if(huart->Instance==USART1)
424   {
425   /* USER CODE BEGIN USART1_MspInit 0 */
426 
427   /* USER CODE END USART1_MspInit 0 */
428     /* Peripheral clock enable */
429     __HAL_RCC_USART1_CLK_ENABLE();
430 
431     __HAL_RCC_GPIOB_CLK_ENABLE();
432     /**USART1 GPIO Configuration
433     PB14     ------> USART1_TX
434     PB15     ------> USART1_RX
435     */
436     GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_15;
437     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
438     GPIO_InitStruct.Pull = GPIO_NOPULL;
439     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
440     GPIO_InitStruct.Alternate = GPIO_AF4_USART1;
441     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
442 
443   /* USER CODE BEGIN USART1_MspInit 1 */
444 
445   /* USER CODE END USART1_MspInit 1 */
446   }
447 
448 }
449 
450 /**
451 * @brief UART MSP De-Initialization
452 * This function freeze the hardware resources used in this example
453 * @param huart: UART handle pointer
454 * @retval None
455 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)456 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
457 {
458   if(huart->Instance==USART1)
459   {
460   /* USER CODE BEGIN USART1_MspDeInit 0 */
461 
462   /* USER CODE END USART1_MspDeInit 0 */
463     /* Peripheral clock disable */
464     __HAL_RCC_USART1_CLK_DISABLE();
465 
466     /**USART1 GPIO Configuration
467     PB14     ------> USART1_TX
468     PB15     ------> USART1_RX
469     */
470     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_14|GPIO_PIN_15);
471 
472   /* USER CODE BEGIN USART1_MspDeInit 1 */
473 
474   /* USER CODE END USART1_MspDeInit 1 */
475   }
476 
477 }
478 
479 /* USER CODE BEGIN 1 */
480 
481 /* USER CODE END 1 */
482 
483 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
484