1 /* USER CODE BEGIN Header */
2 /**
3   ******************************************************************************
4   * File Name          : stm32f7xx_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_PWR_CLK_ENABLE();
71   __HAL_RCC_SYSCFG_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 ETH MSP Initialization
82 * This function configures the hardware resources used in this example
83 * @param heth: ETH handle pointer
84 * @retval None
85 */
HAL_ETH_MspInit(ETH_HandleTypeDef * heth)86 void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
87 {
88   GPIO_InitTypeDef GPIO_InitStruct = {0};
89   if(heth->Instance==ETH)
90   {
91   /* USER CODE BEGIN ETH_MspInit 0 */
92 
93   /* USER CODE END ETH_MspInit 0 */
94     /* Peripheral clock enable */
95     __HAL_RCC_ETH_CLK_ENABLE();
96 
97     __HAL_RCC_GPIOE_CLK_ENABLE();
98     __HAL_RCC_GPIOG_CLK_ENABLE();
99     __HAL_RCC_GPIOH_CLK_ENABLE();
100     __HAL_RCC_GPIOC_CLK_ENABLE();
101     __HAL_RCC_GPIOA_CLK_ENABLE();
102     /**ETH GPIO Configuration
103     PE2     ------> ETH_TXD3
104     PG14     ------> ETH_TXD1
105     PG13     ------> ETH_TXD0
106     PG11     ------> ETH_TX_EN
107     PH3     ------> ETH_COL
108     PH2     ------> ETH_CRS
109     PC3     ------> ETH_TX_CLK
110     PC1     ------> ETH_MDC
111     PC2     ------> ETH_TXD2
112     PA1     ------> ETH_RX_CLK
113     PC4     ------> ETH_RXD0
114     PH7     ------> ETH_RXD3
115     PA2     ------> ETH_MDIO
116     PC5     ------> ETH_RXD1
117     PH6     ------> ETH_RXD2
118     PA7     ------> ETH_RX_DV
119     */
120     GPIO_InitStruct.Pin = GPIO_PIN_2;
121     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
122     GPIO_InitStruct.Pull = GPIO_NOPULL;
123     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
124     GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
125     HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
126 
127     GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_13|GPIO_PIN_11;
128     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
129     GPIO_InitStruct.Pull = GPIO_NOPULL;
130     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
131     GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
132     HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
133 
134     GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_7|GPIO_PIN_6;
135     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
136     GPIO_InitStruct.Pull = GPIO_NOPULL;
137     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
138     GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
139     HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
140 
141     GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_4
142                           |GPIO_PIN_5;
143     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
144     GPIO_InitStruct.Pull = GPIO_NOPULL;
145     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
146     GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
147     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
148 
149     GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7;
150     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
151     GPIO_InitStruct.Pull = GPIO_NOPULL;
152     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
153     GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
154     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
155 
156   /* USER CODE BEGIN ETH_MspInit 1 */
157 
158   /* USER CODE END ETH_MspInit 1 */
159   }
160 
161 }
162 
163 /**
164 * @brief ETH MSP De-Initialization
165 * This function freeze the hardware resources used in this example
166 * @param heth: ETH handle pointer
167 * @retval None
168 */
HAL_ETH_MspDeInit(ETH_HandleTypeDef * heth)169 void HAL_ETH_MspDeInit(ETH_HandleTypeDef* heth)
170 {
171   if(heth->Instance==ETH)
172   {
173   /* USER CODE BEGIN ETH_MspDeInit 0 */
174 
175   /* USER CODE END ETH_MspDeInit 0 */
176     /* Peripheral clock disable */
177     __HAL_RCC_ETH_CLK_DISABLE();
178 
179     /**ETH GPIO Configuration
180     PE2     ------> ETH_TXD3
181     PG14     ------> ETH_TXD1
182     PG13     ------> ETH_TXD0
183     PG11     ------> ETH_TX_EN
184     PH3     ------> ETH_COL
185     PH2     ------> ETH_CRS
186     PC3     ------> ETH_TX_CLK
187     PC1     ------> ETH_MDC
188     PC2     ------> ETH_TXD2
189     PA1     ------> ETH_RX_CLK
190     PC4     ------> ETH_RXD0
191     PH7     ------> ETH_RXD3
192     PA2     ------> ETH_MDIO
193     PC5     ------> ETH_RXD1
194     PH6     ------> ETH_RXD2
195     PA7     ------> ETH_RX_DV
196     */
197     HAL_GPIO_DeInit(GPIOE, GPIO_PIN_2);
198 
199     HAL_GPIO_DeInit(GPIOG, GPIO_PIN_14|GPIO_PIN_13|GPIO_PIN_11);
200 
201     HAL_GPIO_DeInit(GPIOH, GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_7|GPIO_PIN_6);
202 
203     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_3|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_4
204                           |GPIO_PIN_5);
205 
206     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7);
207 
208   /* USER CODE BEGIN ETH_MspDeInit 1 */
209 
210   /* USER CODE END ETH_MspDeInit 1 */
211   }
212 
213 }
214 
215 /**
216 * @brief UART MSP Initialization
217 * This function configures the hardware resources used in this example
218 * @param huart: UART handle pointer
219 * @retval None
220 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)221 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
222 {
223   GPIO_InitTypeDef GPIO_InitStruct = {0};
224   if(huart->Instance==UART5)
225   {
226   /* USER CODE BEGIN UART5_MspInit 0 */
227 
228   /* USER CODE END UART5_MspInit 0 */
229     /* Peripheral clock enable */
230     __HAL_RCC_UART5_CLK_ENABLE();
231 
232     __HAL_RCC_GPIOC_CLK_ENABLE();
233     __HAL_RCC_GPIOD_CLK_ENABLE();
234     /**UART5 GPIO Configuration
235     PC12     ------> UART5_TX
236     PD2     ------> UART5_RX
237     */
238     GPIO_InitStruct.Pin = GPIO_PIN_12;
239     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
240     GPIO_InitStruct.Pull = GPIO_PULLUP;
241     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
242     GPIO_InitStruct.Alternate = GPIO_AF8_UART5;
243     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
244 
245     GPIO_InitStruct.Pin = GPIO_PIN_2;
246     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
247     GPIO_InitStruct.Pull = GPIO_PULLUP;
248     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
249     GPIO_InitStruct.Alternate = GPIO_AF8_UART5;
250     HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
251 
252   /* USER CODE BEGIN UART5_MspInit 1 */
253 
254   /* USER CODE END UART5_MspInit 1 */
255   }
256   else if(huart->Instance==USART1)
257   {
258   /* USER CODE BEGIN USART1_MspInit 0 */
259 
260   /* USER CODE END USART1_MspInit 0 */
261     /* Peripheral clock enable */
262     __HAL_RCC_USART1_CLK_ENABLE();
263 
264     __HAL_RCC_GPIOA_CLK_ENABLE();
265     /**USART1 GPIO Configuration
266     PA10     ------> USART1_RX
267     PA9     ------> USART1_TX
268     */
269     GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_9;
270     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
271     GPIO_InitStruct.Pull = GPIO_PULLUP;
272     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
273     GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
274     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
275 
276   /* USER CODE BEGIN USART1_MspInit 1 */
277 
278   /* USER CODE END USART1_MspInit 1 */
279   }
280 
281 }
282 
283 /**
284 * @brief UART MSP De-Initialization
285 * This function freeze the hardware resources used in this example
286 * @param huart: UART handle pointer
287 * @retval None
288 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)289 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
290 {
291   if(huart->Instance==UART5)
292   {
293   /* USER CODE BEGIN UART5_MspDeInit 0 */
294 
295   /* USER CODE END UART5_MspDeInit 0 */
296     /* Peripheral clock disable */
297     __HAL_RCC_UART5_CLK_DISABLE();
298 
299     /**UART5 GPIO Configuration
300     PC12     ------> UART5_TX
301     PD2     ------> UART5_RX
302     */
303     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_12);
304 
305     HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
306 
307   /* USER CODE BEGIN UART5_MspDeInit 1 */
308 
309   /* USER CODE END UART5_MspDeInit 1 */
310   }
311   else if(huart->Instance==USART1)
312   {
313   /* USER CODE BEGIN USART1_MspDeInit 0 */
314 
315   /* USER CODE END USART1_MspDeInit 0 */
316     /* Peripheral clock disable */
317     __HAL_RCC_USART1_CLK_DISABLE();
318 
319     /**USART1 GPIO Configuration
320     PA10     ------> USART1_RX
321     PA9     ------> USART1_TX
322     */
323     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_10|GPIO_PIN_9);
324 
325   /* USER CODE BEGIN USART1_MspDeInit 1 */
326 
327   /* USER CODE END USART1_MspDeInit 1 */
328   }
329 
330 }
331 
332 /* USER CODE BEGIN 1 */
333 
334 /* USER CODE END 1 */
335 
336 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
337