1 /* USER CODE BEGIN Header */
2 /**
3   ******************************************************************************
4   * File Name          : stm32f1xx_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_AFIO_CLK_ENABLE();
71   __HAL_RCC_PWR_CLK_ENABLE();
72 
73   /* System interrupt init*/
74 
75   /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled
76   */
77   __HAL_AFIO_REMAP_SWJ_NOJTAG();
78 
79   /* USER CODE BEGIN MspInit 1 */
80 
81   /* USER CODE END MspInit 1 */
82 }
83 
84 /**
85 * @brief RTC MSP Initialization
86 * This function configures the hardware resources used in this example
87 * @param hrtc: RTC handle pointer
88 * @retval None
89 */
HAL_RTC_MspInit(RTC_HandleTypeDef * hrtc)90 void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
91 {
92   if(hrtc->Instance==RTC)
93   {
94   /* USER CODE BEGIN RTC_MspInit 0 */
95 
96   /* USER CODE END RTC_MspInit 0 */
97     HAL_PWR_EnableBkUpAccess();
98     /* Enable BKP CLK enable for backup registers */
99     __HAL_RCC_BKP_CLK_ENABLE();
100     /* Peripheral clock enable */
101     __HAL_RCC_RTC_ENABLE();
102   /* USER CODE BEGIN RTC_MspInit 1 */
103 
104   /* USER CODE END RTC_MspInit 1 */
105   }
106 
107 }
108 
109 /**
110 * @brief RTC MSP De-Initialization
111 * This function freeze the hardware resources used in this example
112 * @param hrtc: RTC handle pointer
113 * @retval None
114 */
HAL_RTC_MspDeInit(RTC_HandleTypeDef * hrtc)115 void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
116 {
117   if(hrtc->Instance==RTC)
118   {
119   /* USER CODE BEGIN RTC_MspDeInit 0 */
120 
121   /* USER CODE END RTC_MspDeInit 0 */
122     /* Peripheral clock disable */
123     __HAL_RCC_RTC_DISABLE();
124   /* USER CODE BEGIN RTC_MspDeInit 1 */
125 
126   /* USER CODE END RTC_MspDeInit 1 */
127   }
128 
129 }
130 
131 /**
132 * @brief SPI MSP Initialization
133 * This function configures the hardware resources used in this example
134 * @param hspi: SPI handle pointer
135 * @retval None
136 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)137 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
138 {
139   GPIO_InitTypeDef GPIO_InitStruct = {0};
140   if(hspi->Instance==SPI1)
141   {
142   /* USER CODE BEGIN SPI1_MspInit 0 */
143 
144   /* USER CODE END SPI1_MspInit 0 */
145     /* Peripheral clock enable */
146     __HAL_RCC_SPI1_CLK_ENABLE();
147 
148     __HAL_RCC_GPIOB_CLK_ENABLE();
149     /**SPI1 GPIO Configuration
150     PB3     ------> SPI1_SCK
151     PB4     ------> SPI1_MISO
152     PB5     ------> SPI1_MOSI
153     */
154     GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_5;
155     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
156     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
157     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
158 
159     GPIO_InitStruct.Pin = GPIO_PIN_4;
160     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
161     GPIO_InitStruct.Pull = GPIO_NOPULL;
162     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
163 
164     __HAL_AFIO_REMAP_SPI1_ENABLE();
165 
166   /* USER CODE BEGIN SPI1_MspInit 1 */
167 
168   /* USER CODE END SPI1_MspInit 1 */
169   }
170 
171 }
172 
173 /**
174 * @brief SPI MSP De-Initialization
175 * This function freeze the hardware resources used in this example
176 * @param hspi: SPI handle pointer
177 * @retval None
178 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)179 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
180 {
181   if(hspi->Instance==SPI1)
182   {
183   /* USER CODE BEGIN SPI1_MspDeInit 0 */
184 
185   /* USER CODE END SPI1_MspDeInit 0 */
186     /* Peripheral clock disable */
187     __HAL_RCC_SPI1_CLK_DISABLE();
188 
189     /**SPI1 GPIO Configuration
190     PB3     ------> SPI1_SCK
191     PB4     ------> SPI1_MISO
192     PB5     ------> SPI1_MOSI
193     */
194     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5);
195 
196   /* USER CODE BEGIN SPI1_MspDeInit 1 */
197 
198   /* USER CODE END SPI1_MspDeInit 1 */
199   }
200 
201 }
202 
203 /**
204 * @brief UART MSP Initialization
205 * This function configures the hardware resources used in this example
206 * @param huart: UART handle pointer
207 * @retval None
208 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)209 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
210 {
211   GPIO_InitTypeDef GPIO_InitStruct = {0};
212   if(huart->Instance==USART1)
213   {
214   /* USER CODE BEGIN USART1_MspInit 0 */
215 
216   /* USER CODE END USART1_MspInit 0 */
217     /* Peripheral clock enable */
218     __HAL_RCC_USART1_CLK_ENABLE();
219 
220     __HAL_RCC_GPIOA_CLK_ENABLE();
221     /**USART1 GPIO Configuration
222     PA9     ------> USART1_TX
223     PA10     ------> USART1_RX
224     */
225     GPIO_InitStruct.Pin = GPIO_PIN_9;
226     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
227     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
228     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
229 
230     GPIO_InitStruct.Pin = GPIO_PIN_10;
231     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
232     GPIO_InitStruct.Pull = GPIO_PULLUP;
233     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
234 
235   /* USER CODE BEGIN USART1_MspInit 1 */
236 
237   /* USER CODE END USART1_MspInit 1 */
238   }
239   else if(huart->Instance==USART2)
240   {
241   /* USER CODE BEGIN USART2_MspInit 0 */
242 
243   /* USER CODE END USART2_MspInit 0 */
244     /* Peripheral clock enable */
245     __HAL_RCC_USART2_CLK_ENABLE();
246 
247     __HAL_RCC_GPIOA_CLK_ENABLE();
248     /**USART2 GPIO Configuration
249     PA2     ------> USART2_TX
250     PA3     ------> USART2_RX
251     */
252     GPIO_InitStruct.Pin = GPIO_PIN_2;
253     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
254     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
255     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
256 
257     GPIO_InitStruct.Pin = GPIO_PIN_3;
258     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
259     GPIO_InitStruct.Pull = GPIO_NOPULL;
260     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
261 
262   /* USER CODE BEGIN USART2_MspInit 1 */
263 
264   /* USER CODE END USART2_MspInit 1 */
265   }
266 
267 }
268 
269 /**
270 * @brief UART MSP De-Initialization
271 * This function freeze the hardware resources used in this example
272 * @param huart: UART handle pointer
273 * @retval None
274 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)275 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
276 {
277   if(huart->Instance==USART1)
278   {
279   /* USER CODE BEGIN USART1_MspDeInit 0 */
280 
281   /* USER CODE END USART1_MspDeInit 0 */
282     /* Peripheral clock disable */
283     __HAL_RCC_USART1_CLK_DISABLE();
284 
285     /**USART1 GPIO Configuration
286     PA9     ------> USART1_TX
287     PA10     ------> USART1_RX
288     */
289     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
290 
291   /* USER CODE BEGIN USART1_MspDeInit 1 */
292 
293   /* USER CODE END USART1_MspDeInit 1 */
294   }
295   else if(huart->Instance==USART2)
296   {
297   /* USER CODE BEGIN USART2_MspDeInit 0 */
298 
299   /* USER CODE END USART2_MspDeInit 0 */
300     /* Peripheral clock disable */
301     __HAL_RCC_USART2_CLK_DISABLE();
302 
303     /**USART2 GPIO Configuration
304     PA2     ------> USART2_TX
305     PA3     ------> USART2_RX
306     */
307     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
308 
309   /* USER CODE BEGIN USART2_MspDeInit 1 */
310 
311   /* USER CODE END USART2_MspDeInit 1 */
312   }
313 
314 }
315 
316 /* USER CODE BEGIN 1 */
317 
318 /* USER CODE END 1 */
319 
320 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
321