stm32f4xx_hal_msp.c 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636
  1. /* USER CODE BEGIN Header */
  2. /**
  3. ******************************************************************************
  4. * File Name : stm32f4xx_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. /* Includes ------------------------------------------------------------------*/
  22. #include "main.h"
  23. /* USER CODE BEGIN Includes */
  24. /* USER CODE END Includes */
  25. /* Private typedef -----------------------------------------------------------*/
  26. /* USER CODE BEGIN TD */
  27. /* USER CODE END TD */
  28. /* Private define ------------------------------------------------------------*/
  29. /* USER CODE BEGIN Define */
  30. /* USER CODE END Define */
  31. /* Private macro -------------------------------------------------------------*/
  32. /* USER CODE BEGIN Macro */
  33. /* USER CODE END Macro */
  34. /* Private variables ---------------------------------------------------------*/
  35. /* USER CODE BEGIN PV */
  36. /* USER CODE END PV */
  37. /* Private function prototypes -----------------------------------------------*/
  38. /* USER CODE BEGIN PFP */
  39. /* USER CODE END PFP */
  40. /* External functions --------------------------------------------------------*/
  41. /* USER CODE BEGIN ExternalFunctions */
  42. /* USER CODE END ExternalFunctions */
  43. /* USER CODE BEGIN 0 */
  44. /* USER CODE END 0 */
  45. void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
  46. /**
  47. * Initializes the Global MSP.
  48. */
  49. void HAL_MspInit(void)
  50. {
  51. /* USER CODE BEGIN MspInit 0 */
  52. /* USER CODE END MspInit 0 */
  53. __HAL_RCC_SYSCFG_CLK_ENABLE();
  54. __HAL_RCC_PWR_CLK_ENABLE();
  55. /* System interrupt init*/
  56. /* USER CODE BEGIN MspInit 1 */
  57. /* USER CODE END MspInit 1 */
  58. }
  59. /**
  60. * @brief ADC MSP Initialization
  61. * This function configures the hardware resources used in this example
  62. * @param hadc: ADC handle pointer
  63. * @retval None
  64. */
  65. void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
  66. {
  67. GPIO_InitTypeDef GPIO_InitStruct = {0};
  68. if(hadc->Instance==ADC1)
  69. {
  70. /* USER CODE BEGIN ADC1_MspInit 0 */
  71. /* USER CODE END ADC1_MspInit 0 */
  72. /* Peripheral clock enable */
  73. __HAL_RCC_ADC1_CLK_ENABLE();
  74. __HAL_RCC_GPIOA_CLK_ENABLE();
  75. __HAL_RCC_GPIOB_CLK_ENABLE();
  76. /**ADC1 GPIO Configuration
  77. PA0-WKUP ------> ADC1_IN0
  78. PA1 ------> ADC1_IN1
  79. PA4 ------> ADC1_IN4
  80. PA5 ------> ADC1_IN5
  81. PA6 ------> ADC1_IN6
  82. PA7 ------> ADC1_IN7
  83. PB0 ------> ADC1_IN8
  84. PB1 ------> ADC1_IN9
  85. */
  86. GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5
  87. |GPIO_PIN_6|GPIO_PIN_7;
  88. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  89. GPIO_InitStruct.Pull = GPIO_NOPULL;
  90. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  91. GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
  92. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  93. GPIO_InitStruct.Pull = GPIO_NOPULL;
  94. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  95. /* USER CODE BEGIN ADC1_MspInit 1 */
  96. /* USER CODE END ADC1_MspInit 1 */
  97. }
  98. }
  99. /**
  100. * @brief ADC MSP De-Initialization
  101. * This function freeze the hardware resources used in this example
  102. * @param hadc: ADC handle pointer
  103. * @retval None
  104. */
  105. void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
  106. {
  107. if(hadc->Instance==ADC1)
  108. {
  109. /* USER CODE BEGIN ADC1_MspDeInit 0 */
  110. /* USER CODE END ADC1_MspDeInit 0 */
  111. /* Peripheral clock disable */
  112. __HAL_RCC_ADC1_CLK_DISABLE();
  113. /**ADC1 GPIO Configuration
  114. PA0-WKUP ------> ADC1_IN0
  115. PA1 ------> ADC1_IN1
  116. PA4 ------> ADC1_IN4
  117. PA5 ------> ADC1_IN5
  118. PA6 ------> ADC1_IN6
  119. PA7 ------> ADC1_IN7
  120. PB0 ------> ADC1_IN8
  121. PB1 ------> ADC1_IN9
  122. */
  123. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5
  124. |GPIO_PIN_6|GPIO_PIN_7);
  125. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0|GPIO_PIN_1);
  126. /* USER CODE BEGIN ADC1_MspDeInit 1 */
  127. /* USER CODE END ADC1_MspDeInit 1 */
  128. }
  129. }
  130. /**
  131. * @brief RTC MSP Initialization
  132. * This function configures the hardware resources used in this example
  133. * @param hrtc: RTC handle pointer
  134. * @retval None
  135. */
  136. void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
  137. {
  138. RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
  139. if(hrtc->Instance==RTC)
  140. {
  141. /* USER CODE BEGIN RTC_MspInit 0 */
  142. /* USER CODE END RTC_MspInit 0 */
  143. /** Initializes the peripherals clock
  144. */
  145. PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
  146. PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
  147. if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
  148. {
  149. Error_Handler();
  150. }
  151. /* Peripheral clock enable */
  152. __HAL_RCC_RTC_ENABLE();
  153. /* USER CODE BEGIN RTC_MspInit 1 */
  154. /* USER CODE END RTC_MspInit 1 */
  155. }
  156. }
  157. /**
  158. * @brief RTC MSP De-Initialization
  159. * This function freeze the hardware resources used in this example
  160. * @param hrtc: RTC handle pointer
  161. * @retval None
  162. */
  163. void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
  164. {
  165. if(hrtc->Instance==RTC)
  166. {
  167. /* USER CODE BEGIN RTC_MspDeInit 0 */
  168. /* USER CODE END RTC_MspDeInit 0 */
  169. /* Peripheral clock disable */
  170. __HAL_RCC_RTC_DISABLE();
  171. /* USER CODE BEGIN RTC_MspDeInit 1 */
  172. /* USER CODE END RTC_MspDeInit 1 */
  173. }
  174. }
  175. /**
  176. * @brief SPI MSP Initialization
  177. * This function configures the hardware resources used in this example
  178. * @param hspi: SPI handle pointer
  179. * @retval None
  180. */
  181. void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
  182. {
  183. GPIO_InitTypeDef GPIO_InitStruct = {0};
  184. if(hspi->Instance==SPI1)
  185. {
  186. /* USER CODE BEGIN SPI1_MspInit 0 */
  187. /* USER CODE END SPI1_MspInit 0 */
  188. /* Peripheral clock enable */
  189. __HAL_RCC_SPI1_CLK_ENABLE();
  190. __HAL_RCC_GPIOA_CLK_ENABLE();
  191. __HAL_RCC_GPIOB_CLK_ENABLE();
  192. /**SPI1 GPIO Configuration
  193. PA15 ------> SPI1_NSS
  194. PB3 ------> SPI1_SCK
  195. PB4 ------> SPI1_MISO
  196. PB5 ------> SPI1_MOSI
  197. */
  198. GPIO_InitStruct.Pin = GPIO_PIN_15;
  199. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  200. GPIO_InitStruct.Pull = GPIO_NOPULL;
  201. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  202. GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
  203. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  204. GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5;
  205. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  206. GPIO_InitStruct.Pull = GPIO_NOPULL;
  207. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  208. GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
  209. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  210. /* USER CODE BEGIN SPI1_MspInit 1 */
  211. /* USER CODE END SPI1_MspInit 1 */
  212. }
  213. }
  214. /**
  215. * @brief SPI MSP De-Initialization
  216. * This function freeze the hardware resources used in this example
  217. * @param hspi: SPI handle pointer
  218. * @retval None
  219. */
  220. void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
  221. {
  222. if(hspi->Instance==SPI1)
  223. {
  224. /* USER CODE BEGIN SPI1_MspDeInit 0 */
  225. /* USER CODE END SPI1_MspDeInit 0 */
  226. /* Peripheral clock disable */
  227. __HAL_RCC_SPI1_CLK_DISABLE();
  228. /**SPI1 GPIO Configuration
  229. PA15 ------> SPI1_NSS
  230. PB3 ------> SPI1_SCK
  231. PB4 ------> SPI1_MISO
  232. PB5 ------> SPI1_MOSI
  233. */
  234. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_15);
  235. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5);
  236. /* USER CODE BEGIN SPI1_MspDeInit 1 */
  237. /* USER CODE END SPI1_MspDeInit 1 */
  238. }
  239. }
  240. /**
  241. * @brief TIM_Base MSP Initialization
  242. * This function configures the hardware resources used in this example
  243. * @param htim_base: TIM_Base handle pointer
  244. * @retval None
  245. */
  246. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
  247. {
  248. if(htim_base->Instance==TIM1)
  249. {
  250. /* USER CODE BEGIN TIM1_MspInit 0 */
  251. /* USER CODE END TIM1_MspInit 0 */
  252. /* Peripheral clock enable */
  253. __HAL_RCC_TIM1_CLK_ENABLE();
  254. /* USER CODE BEGIN TIM1_MspInit 1 */
  255. /* USER CODE END TIM1_MspInit 1 */
  256. }
  257. else if(htim_base->Instance==TIM4)
  258. {
  259. /* USER CODE BEGIN TIM4_MspInit 0 */
  260. /* USER CODE END TIM4_MspInit 0 */
  261. /* Peripheral clock enable */
  262. __HAL_RCC_TIM4_CLK_ENABLE();
  263. /* USER CODE BEGIN TIM4_MspInit 1 */
  264. /* USER CODE END TIM4_MspInit 1 */
  265. }
  266. else if(htim_base->Instance==TIM10)
  267. {
  268. /* USER CODE BEGIN TIM10_MspInit 0 */
  269. /* USER CODE END TIM10_MspInit 0 */
  270. /* Peripheral clock enable */
  271. __HAL_RCC_TIM10_CLK_ENABLE();
  272. /* USER CODE BEGIN TIM10_MspInit 1 */
  273. /* USER CODE END TIM10_MspInit 1 */
  274. }
  275. else if(htim_base->Instance==TIM11)
  276. {
  277. /* USER CODE BEGIN TIM11_MspInit 0 */
  278. /* USER CODE END TIM11_MspInit 0 */
  279. /* Peripheral clock enable */
  280. __HAL_RCC_TIM11_CLK_ENABLE();
  281. /* USER CODE BEGIN TIM11_MspInit 1 */
  282. /* USER CODE END TIM11_MspInit 1 */
  283. }
  284. }
  285. void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
  286. {
  287. GPIO_InitTypeDef GPIO_InitStruct = {0};
  288. if(htim->Instance==TIM1)
  289. {
  290. /* USER CODE BEGIN TIM1_MspPostInit 0 */
  291. /* USER CODE END TIM1_MspPostInit 0 */
  292. __HAL_RCC_GPIOB_CLK_ENABLE();
  293. /**TIM1 GPIO Configuration
  294. PB13 ------> TIM1_CH1N
  295. PB14 ------> TIM1_CH2N
  296. PB15 ------> TIM1_CH3N
  297. */
  298. GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
  299. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  300. GPIO_InitStruct.Pull = GPIO_NOPULL;
  301. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  302. GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
  303. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  304. /* USER CODE BEGIN TIM1_MspPostInit 1 */
  305. /* USER CODE END TIM1_MspPostInit 1 */
  306. }
  307. else if(htim->Instance==TIM4)
  308. {
  309. /* USER CODE BEGIN TIM4_MspPostInit 0 */
  310. /* USER CODE END TIM4_MspPostInit 0 */
  311. __HAL_RCC_GPIOB_CLK_ENABLE();
  312. /**TIM4 GPIO Configuration
  313. PB6 ------> TIM4_CH1
  314. PB7 ------> TIM4_CH2
  315. PB8 ------> TIM4_CH3
  316. PB9 ------> TIM4_CH4
  317. */
  318. GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9;
  319. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  320. GPIO_InitStruct.Pull = GPIO_NOPULL;
  321. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  322. GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
  323. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  324. /* USER CODE BEGIN TIM4_MspPostInit 1 */
  325. /* USER CODE END TIM4_MspPostInit 1 */
  326. }
  327. }
  328. /**
  329. * @brief TIM_Base MSP De-Initialization
  330. * This function freeze the hardware resources used in this example
  331. * @param htim_base: TIM_Base handle pointer
  332. * @retval None
  333. */
  334. void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
  335. {
  336. if(htim_base->Instance==TIM1)
  337. {
  338. /* USER CODE BEGIN TIM1_MspDeInit 0 */
  339. /* USER CODE END TIM1_MspDeInit 0 */
  340. /* Peripheral clock disable */
  341. __HAL_RCC_TIM1_CLK_DISABLE();
  342. /* USER CODE BEGIN TIM1_MspDeInit 1 */
  343. /* USER CODE END TIM1_MspDeInit 1 */
  344. }
  345. else if(htim_base->Instance==TIM4)
  346. {
  347. /* USER CODE BEGIN TIM4_MspDeInit 0 */
  348. /* USER CODE END TIM4_MspDeInit 0 */
  349. /* Peripheral clock disable */
  350. __HAL_RCC_TIM4_CLK_DISABLE();
  351. /* USER CODE BEGIN TIM4_MspDeInit 1 */
  352. /* USER CODE END TIM4_MspDeInit 1 */
  353. }
  354. else if(htim_base->Instance==TIM10)
  355. {
  356. /* USER CODE BEGIN TIM10_MspDeInit 0 */
  357. /* USER CODE END TIM10_MspDeInit 0 */
  358. /* Peripheral clock disable */
  359. __HAL_RCC_TIM10_CLK_DISABLE();
  360. /* USER CODE BEGIN TIM10_MspDeInit 1 */
  361. /* USER CODE END TIM10_MspDeInit 1 */
  362. }
  363. else if(htim_base->Instance==TIM11)
  364. {
  365. /* USER CODE BEGIN TIM11_MspDeInit 0 */
  366. /* USER CODE END TIM11_MspDeInit 0 */
  367. /* Peripheral clock disable */
  368. __HAL_RCC_TIM11_CLK_DISABLE();
  369. /* USER CODE BEGIN TIM11_MspDeInit 1 */
  370. /* USER CODE END TIM11_MspDeInit 1 */
  371. }
  372. }
  373. /**
  374. * @brief UART MSP Initialization
  375. * This function configures the hardware resources used in this example
  376. * @param huart: UART handle pointer
  377. * @retval None
  378. */
  379. void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  380. {
  381. GPIO_InitTypeDef GPIO_InitStruct = {0};
  382. if(huart->Instance==USART1)
  383. {
  384. /* USER CODE BEGIN USART1_MspInit 0 */
  385. /* USER CODE END USART1_MspInit 0 */
  386. /* Peripheral clock enable */
  387. __HAL_RCC_USART1_CLK_ENABLE();
  388. __HAL_RCC_GPIOA_CLK_ENABLE();
  389. /**USART1 GPIO Configuration
  390. PA9 ------> USART1_TX
  391. PA10 ------> USART1_RX
  392. */
  393. GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
  394. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  395. GPIO_InitStruct.Pull = GPIO_PULLUP;
  396. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  397. GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
  398. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  399. /* USER CODE BEGIN USART1_MspInit 1 */
  400. /* USER CODE END USART1_MspInit 1 */
  401. }
  402. else if(huart->Instance==USART2)
  403. {
  404. /* USER CODE BEGIN USART2_MspInit 0 */
  405. /* USER CODE END USART2_MspInit 0 */
  406. /* Peripheral clock enable */
  407. __HAL_RCC_USART2_CLK_ENABLE();
  408. __HAL_RCC_GPIOA_CLK_ENABLE();
  409. /**USART2 GPIO Configuration
  410. PA2 ------> USART2_TX
  411. PA3 ------> USART2_RX
  412. */
  413. GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
  414. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  415. GPIO_InitStruct.Pull = GPIO_NOPULL;
  416. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  417. GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
  418. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  419. /* USER CODE BEGIN USART2_MspInit 1 */
  420. /* USER CODE END USART2_MspInit 1 */
  421. }
  422. }
  423. /**
  424. * @brief UART MSP De-Initialization
  425. * This function freeze the hardware resources used in this example
  426. * @param huart: UART handle pointer
  427. * @retval None
  428. */
  429. void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
  430. {
  431. if(huart->Instance==USART1)
  432. {
  433. /* USER CODE BEGIN USART1_MspDeInit 0 */
  434. /* USER CODE END USART1_MspDeInit 0 */
  435. /* Peripheral clock disable */
  436. __HAL_RCC_USART1_CLK_DISABLE();
  437. /**USART1 GPIO Configuration
  438. PA9 ------> USART1_TX
  439. PA10 ------> USART1_RX
  440. */
  441. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
  442. /* USER CODE BEGIN USART1_MspDeInit 1 */
  443. /* USER CODE END USART1_MspDeInit 1 */
  444. }
  445. else if(huart->Instance==USART2)
  446. {
  447. /* USER CODE BEGIN USART2_MspDeInit 0 */
  448. /* USER CODE END USART2_MspDeInit 0 */
  449. /* Peripheral clock disable */
  450. __HAL_RCC_USART2_CLK_DISABLE();
  451. /**USART2 GPIO Configuration
  452. PA2 ------> USART2_TX
  453. PA3 ------> USART2_RX
  454. */
  455. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
  456. /* USER CODE BEGIN USART2_MspDeInit 1 */
  457. /* USER CODE END USART2_MspDeInit 1 */
  458. }
  459. }
  460. /**
  461. * @brief PCD MSP Initialization
  462. * This function configures the hardware resources used in this example
  463. * @param hpcd: PCD handle pointer
  464. * @retval None
  465. */
  466. void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)
  467. {
  468. GPIO_InitTypeDef GPIO_InitStruct = {0};
  469. if(hpcd->Instance==USB_OTG_FS)
  470. {
  471. /* USER CODE BEGIN USB_OTG_FS_MspInit 0 */
  472. /* USER CODE END USB_OTG_FS_MspInit 0 */
  473. __HAL_RCC_GPIOA_CLK_ENABLE();
  474. /**USB_OTG_FS GPIO Configuration
  475. PA11 ------> USB_OTG_FS_DM
  476. PA12 ------> USB_OTG_FS_DP
  477. */
  478. GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12;
  479. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  480. GPIO_InitStruct.Pull = GPIO_NOPULL;
  481. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  482. GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
  483. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  484. /* Peripheral clock enable */
  485. __HAL_RCC_USB_OTG_FS_CLK_ENABLE();
  486. /* USER CODE BEGIN USB_OTG_FS_MspInit 1 */
  487. /* USER CODE END USB_OTG_FS_MspInit 1 */
  488. }
  489. }
  490. /**
  491. * @brief PCD MSP De-Initialization
  492. * This function freeze the hardware resources used in this example
  493. * @param hpcd: PCD handle pointer
  494. * @retval None
  495. */
  496. void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd)
  497. {
  498. if(hpcd->Instance==USB_OTG_FS)
  499. {
  500. /* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */
  501. /* USER CODE END USB_OTG_FS_MspDeInit 0 */
  502. /* Peripheral clock disable */
  503. __HAL_RCC_USB_OTG_FS_CLK_DISABLE();
  504. /**USB_OTG_FS GPIO Configuration
  505. PA11 ------> USB_OTG_FS_DM
  506. PA12 ------> USB_OTG_FS_DP
  507. */
  508. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12);
  509. /* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */
  510. /* USER CODE END USB_OTG_FS_MspDeInit 1 */
  511. }
  512. }
  513. /* USER CODE BEGIN 1 */
  514. /* USER CODE END 1 */