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 ** 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 void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
83 /**
84 * Initializes the Global MSP.
85 */
HAL_MspInit(void)86 void HAL_MspInit(void)
87 {
88 /* USER CODE BEGIN MspInit 0 */
89
90 /* USER CODE END MspInit 0 */
91
92 __HAL_RCC_AFIO_CLK_ENABLE();
93 __HAL_RCC_PWR_CLK_ENABLE();
94
95 /* System interrupt init*/
96
97 /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled
98 */
99 __HAL_AFIO_REMAP_SWJ_NOJTAG();
100
101 /* USER CODE BEGIN MspInit 1 */
102
103 /* USER CODE END MspInit 1 */
104 }
105
106 /**
107 * @brief SD MSP Initialization
108 * This function configures the hardware resources used in this example
109 * @param hsd: SD handle pointer
110 * @retval None
111 */
HAL_SD_MspInit(SD_HandleTypeDef * hsd)112 void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
113 {
114 GPIO_InitTypeDef GPIO_InitStruct = {0};
115 if(hsd->Instance==SDIO)
116 {
117 /* USER CODE BEGIN SDIO_MspInit 0 */
118
119 /* USER CODE END SDIO_MspInit 0 */
120 /* Peripheral clock enable */
121 __HAL_RCC_SDIO_CLK_ENABLE();
122
123 __HAL_RCC_GPIOC_CLK_ENABLE();
124 __HAL_RCC_GPIOD_CLK_ENABLE();
125 /**SDIO GPIO Configuration
126 PC8 ------> SDIO_D0
127 PC9 ------> SDIO_D1
128 PC10 ------> SDIO_D2
129 PC11 ------> SDIO_D3
130 PC12 ------> SDIO_CK
131 PD2 ------> SDIO_CMD
132 */
133 GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
134 |GPIO_PIN_12;
135 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
136 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
137 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
138
139 GPIO_InitStruct.Pin = GPIO_PIN_2;
140 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
141 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
142 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
143
144 /* USER CODE BEGIN SDIO_MspInit 1 */
145
146 /* USER CODE END SDIO_MspInit 1 */
147 }
148
149 }
150
151 /**
152 * @brief SD MSP De-Initialization
153 * This function freeze the hardware resources used in this example
154 * @param hsd: SD handle pointer
155 * @retval None
156 */
HAL_SD_MspDeInit(SD_HandleTypeDef * hsd)157 void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
158 {
159 if(hsd->Instance==SDIO)
160 {
161 /* USER CODE BEGIN SDIO_MspDeInit 0 */
162
163 /* USER CODE END SDIO_MspDeInit 0 */
164 /* Peripheral clock disable */
165 __HAL_RCC_SDIO_CLK_DISABLE();
166
167 /**SDIO GPIO Configuration
168 PC8 ------> SDIO_D0
169 PC9 ------> SDIO_D1
170 PC10 ------> SDIO_D2
171 PC11 ------> SDIO_D3
172 PC12 ------> SDIO_CK
173 PD2 ------> SDIO_CMD
174 */
175 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
176 |GPIO_PIN_12);
177
178 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
179
180 /* USER CODE BEGIN SDIO_MspDeInit 1 */
181
182 /* USER CODE END SDIO_MspDeInit 1 */
183 }
184
185 }
186
187 /**
188 * @brief TIM_PWM MSP Initialization
189 * This function configures the hardware resources used in this example
190 * @param htim_pwm: TIM_PWM handle pointer
191 * @retval None
192 */
HAL_TIM_PWM_MspInit(TIM_HandleTypeDef * htim_pwm)193 void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
194 {
195 if(htim_pwm->Instance==TIM2)
196 {
197 /* USER CODE BEGIN TIM2_MspInit 0 */
198
199 /* USER CODE END TIM2_MspInit 0 */
200 /* Peripheral clock enable */
201 __HAL_RCC_TIM2_CLK_ENABLE();
202 /* USER CODE BEGIN TIM2_MspInit 1 */
203
204 /* USER CODE END TIM2_MspInit 1 */
205 }
206
207 }
208
HAL_TIM_MspPostInit(TIM_HandleTypeDef * htim)209 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
210 {
211 GPIO_InitTypeDef GPIO_InitStruct = {0};
212 if(htim->Instance==TIM2)
213 {
214 /* USER CODE BEGIN TIM2_MspPostInit 0 */
215
216 /* USER CODE END TIM2_MspPostInit 0 */
217
218 __HAL_RCC_GPIOA_CLK_ENABLE();
219 /**TIM2 GPIO Configuration
220 PA0-WKUP ------> TIM2_CH1
221 PA1 ------> TIM2_CH2
222 PA2 ------> TIM2_CH3
223 */
224 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2;
225 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
226 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
227 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
228
229 /* USER CODE BEGIN TIM2_MspPostInit 1 */
230
231 /* USER CODE END TIM2_MspPostInit 1 */
232 }
233
234 }
235 /**
236 * @brief TIM_PWM MSP De-Initialization
237 * This function freeze the hardware resources used in this example
238 * @param htim_pwm: TIM_PWM handle pointer
239 * @retval None
240 */
HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef * htim_pwm)241 void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
242 {
243 if(htim_pwm->Instance==TIM2)
244 {
245 /* USER CODE BEGIN TIM2_MspDeInit 0 */
246
247 /* USER CODE END TIM2_MspDeInit 0 */
248 /* Peripheral clock disable */
249 __HAL_RCC_TIM2_CLK_DISABLE();
250 /* USER CODE BEGIN TIM2_MspDeInit 1 */
251
252 /* USER CODE END TIM2_MspDeInit 1 */
253 }
254
255 }
256
257 /**
258 * @brief UART MSP Initialization
259 * This function configures the hardware resources used in this example
260 * @param huart: UART handle pointer
261 * @retval None
262 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)263 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
264 {
265 GPIO_InitTypeDef GPIO_InitStruct = {0};
266 if(huart->Instance==USART1)
267 {
268 /* USER CODE BEGIN USART1_MspInit 0 */
269 /* USER CODE END USART1_MspInit 0 */
270 /* Peripheral clock enable */
271 __HAL_RCC_USART1_CLK_ENABLE();
272
273 __HAL_RCC_GPIOA_CLK_ENABLE();
274 /**USART1 GPIO Configuration
275 PA9 ------> USART1_TX
276 PA10 ------> USART1_RX
277 */
278 GPIO_InitStruct.Pin = GPIO_PIN_9;
279 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
280 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
281 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
282
283 GPIO_InitStruct.Pin = GPIO_PIN_10;
284 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
285 GPIO_InitStruct.Pull = GPIO_PULLUP;
286 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
287
288 /* USER CODE BEGIN USART1_MspInit 1 */
289 /* USER CODE END USART1_MspInit 1 */
290 }
291
292 }
293
294 /**
295 * @brief UART MSP De-Initialization
296 * This function freeze the hardware resources used in this example
297 * @param huart: UART handle pointer
298 * @retval None
299 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)300 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
301 {
302 if(huart->Instance==USART1)
303 {
304 /* USER CODE BEGIN USART1_MspDeInit 0 */
305 /* USER CODE END USART1_MspDeInit 0 */
306 /* Peripheral clock disable */
307 __HAL_RCC_USART1_CLK_DISABLE();
308
309 /**USART1 GPIO Configuration
310 PA9 ------> USART1_TX
311 PA10 ------> USART1_RX
312 */
313 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
314
315 /* USER CODE BEGIN USART1_MspDeInit 1 */
316 /* USER CODE END USART1_MspDeInit 1 */
317 }
318
319 }
320
321 /* USER CODE BEGIN 1 */
322
323 /* USER CODE END 1 */
324
325 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
326