stm32f4xx_hal_msp.c 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926
  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) 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. /* 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 CRC MSP Initialization
  61. * This function configures the hardware resources used in this example
  62. * @param hcrc: CRC handle pointer
  63. * @retval None
  64. */
  65. void HAL_CRC_MspInit(CRC_HandleTypeDef* hcrc)
  66. {
  67. if(hcrc->Instance==CRC)
  68. {
  69. /* USER CODE BEGIN CRC_MspInit 0 */
  70. /* USER CODE END CRC_MspInit 0 */
  71. /* Peripheral clock enable */
  72. __HAL_RCC_CRC_CLK_ENABLE();
  73. /* USER CODE BEGIN CRC_MspInit 1 */
  74. /* USER CODE END CRC_MspInit 1 */
  75. }
  76. }
  77. /**
  78. * @brief CRC MSP De-Initialization
  79. * This function freeze the hardware resources used in this example
  80. * @param hcrc: CRC handle pointer
  81. * @retval None
  82. */
  83. void HAL_CRC_MspDeInit(CRC_HandleTypeDef* hcrc)
  84. {
  85. if(hcrc->Instance==CRC)
  86. {
  87. /* USER CODE BEGIN CRC_MspDeInit 0 */
  88. /* USER CODE END CRC_MspDeInit 0 */
  89. /* Peripheral clock disable */
  90. __HAL_RCC_CRC_CLK_DISABLE();
  91. /* USER CODE BEGIN CRC_MspDeInit 1 */
  92. /* USER CODE END CRC_MspDeInit 1 */
  93. }
  94. }
  95. /**
  96. * @brief DMA2D MSP Initialization
  97. * This function configures the hardware resources used in this example
  98. * @param hdma2d: DMA2D handle pointer
  99. * @retval None
  100. */
  101. void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef* hdma2d)
  102. {
  103. if(hdma2d->Instance==DMA2D)
  104. {
  105. /* USER CODE BEGIN DMA2D_MspInit 0 */
  106. /* USER CODE END DMA2D_MspInit 0 */
  107. /* Peripheral clock enable */
  108. __HAL_RCC_DMA2D_CLK_ENABLE();
  109. /* USER CODE BEGIN DMA2D_MspInit 1 */
  110. /* USER CODE END DMA2D_MspInit 1 */
  111. }
  112. }
  113. /**
  114. * @brief DMA2D MSP De-Initialization
  115. * This function freeze the hardware resources used in this example
  116. * @param hdma2d: DMA2D handle pointer
  117. * @retval None
  118. */
  119. void HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef* hdma2d)
  120. {
  121. if(hdma2d->Instance==DMA2D)
  122. {
  123. /* USER CODE BEGIN DMA2D_MspDeInit 0 */
  124. /* USER CODE END DMA2D_MspDeInit 0 */
  125. /* Peripheral clock disable */
  126. __HAL_RCC_DMA2D_CLK_DISABLE();
  127. /* USER CODE BEGIN DMA2D_MspDeInit 1 */
  128. /* USER CODE END DMA2D_MspDeInit 1 */
  129. }
  130. }
  131. /**
  132. * @brief DSI MSP Initialization
  133. * This function configures the hardware resources used in this example
  134. * @param hdsi: DSI handle pointer
  135. * @retval None
  136. */
  137. void HAL_DSI_MspInit(DSI_HandleTypeDef* hdsi)
  138. {
  139. if(hdsi->Instance==DSI)
  140. {
  141. /* USER CODE BEGIN DSI_MspInit 0 */
  142. /* USER CODE END DSI_MspInit 0 */
  143. /* Peripheral clock enable */
  144. __HAL_RCC_DSI_CLK_ENABLE();
  145. /* USER CODE BEGIN DSI_MspInit 1 */
  146. /* USER CODE END DSI_MspInit 1 */
  147. }
  148. }
  149. /**
  150. * @brief DSI MSP De-Initialization
  151. * This function freeze the hardware resources used in this example
  152. * @param hdsi: DSI handle pointer
  153. * @retval None
  154. */
  155. void HAL_DSI_MspDeInit(DSI_HandleTypeDef* hdsi)
  156. {
  157. if(hdsi->Instance==DSI)
  158. {
  159. /* USER CODE BEGIN DSI_MspDeInit 0 */
  160. /* USER CODE END DSI_MspDeInit 0 */
  161. /* Peripheral clock disable */
  162. __HAL_RCC_DSI_CLK_DISABLE();
  163. /* USER CODE BEGIN DSI_MspDeInit 1 */
  164. /* USER CODE END DSI_MspDeInit 1 */
  165. }
  166. }
  167. /**
  168. * @brief I2S MSP Initialization
  169. * This function configures the hardware resources used in this example
  170. * @param hi2s: I2S handle pointer
  171. * @retval None
  172. */
  173. void HAL_I2S_MspInit(I2S_HandleTypeDef* hi2s)
  174. {
  175. GPIO_InitTypeDef GPIO_InitStruct = {0};
  176. if(hi2s->Instance==SPI3)
  177. {
  178. /* USER CODE BEGIN SPI3_MspInit 0 */
  179. /* USER CODE END SPI3_MspInit 0 */
  180. /* Peripheral clock enable */
  181. __HAL_RCC_SPI3_CLK_ENABLE();
  182. __HAL_RCC_GPIOB_CLK_ENABLE();
  183. __HAL_RCC_GPIOA_CLK_ENABLE();
  184. __HAL_RCC_GPIOD_CLK_ENABLE();
  185. /**I2S3 GPIO Configuration
  186. PB3 ------> I2S3_CK
  187. PA15 ------> I2S3_WS
  188. PD6 ------> I2S3_SD
  189. */
  190. GPIO_InitStruct.Pin = GPIO_PIN_3;
  191. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  192. GPIO_InitStruct.Pull = GPIO_NOPULL;
  193. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  194. GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
  195. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  196. GPIO_InitStruct.Pin = GPIO_PIN_15;
  197. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  198. GPIO_InitStruct.Pull = GPIO_NOPULL;
  199. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  200. GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
  201. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  202. GPIO_InitStruct.Pin = GPIO_PIN_6;
  203. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  204. GPIO_InitStruct.Pull = GPIO_NOPULL;
  205. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  206. GPIO_InitStruct.Alternate = GPIO_AF5_I2S3ext;
  207. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  208. /* I2S3 interrupt Init */
  209. HAL_NVIC_SetPriority(SPI3_IRQn, 0, 0);
  210. HAL_NVIC_EnableIRQ(SPI3_IRQn);
  211. /* USER CODE BEGIN SPI3_MspInit 1 */
  212. /* USER CODE END SPI3_MspInit 1 */
  213. }
  214. }
  215. /**
  216. * @brief I2S MSP De-Initialization
  217. * This function freeze the hardware resources used in this example
  218. * @param hi2s: I2S handle pointer
  219. * @retval None
  220. */
  221. void HAL_I2S_MspDeInit(I2S_HandleTypeDef* hi2s)
  222. {
  223. if(hi2s->Instance==SPI3)
  224. {
  225. /* USER CODE BEGIN SPI3_MspDeInit 0 */
  226. /* USER CODE END SPI3_MspDeInit 0 */
  227. /* Peripheral clock disable */
  228. __HAL_RCC_SPI3_CLK_DISABLE();
  229. /**I2S3 GPIO Configuration
  230. PB3 ------> I2S3_CK
  231. PA15 ------> I2S3_WS
  232. PD6 ------> I2S3_SD
  233. */
  234. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_3);
  235. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_15);
  236. HAL_GPIO_DeInit(GPIOD, GPIO_PIN_6);
  237. /* I2S3 interrupt DeInit */
  238. HAL_NVIC_DisableIRQ(SPI3_IRQn);
  239. /* USER CODE BEGIN SPI3_MspDeInit 1 */
  240. /* USER CODE END SPI3_MspDeInit 1 */
  241. }
  242. }
  243. /**
  244. * @brief LTDC MSP Initialization
  245. * This function configures the hardware resources used in this example
  246. * @param hltdc: LTDC handle pointer
  247. * @retval None
  248. */
  249. void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
  250. {
  251. if(hltdc->Instance==LTDC)
  252. {
  253. /* USER CODE BEGIN LTDC_MspInit 0 */
  254. /* USER CODE END LTDC_MspInit 0 */
  255. /* Peripheral clock enable */
  256. __HAL_RCC_LTDC_CLK_ENABLE();
  257. /* USER CODE BEGIN LTDC_MspInit 1 */
  258. /* USER CODE END LTDC_MspInit 1 */
  259. }
  260. }
  261. /**
  262. * @brief LTDC MSP De-Initialization
  263. * This function freeze the hardware resources used in this example
  264. * @param hltdc: LTDC handle pointer
  265. * @retval None
  266. */
  267. void HAL_LTDC_MspDeInit(LTDC_HandleTypeDef* hltdc)
  268. {
  269. if(hltdc->Instance==LTDC)
  270. {
  271. /* USER CODE BEGIN LTDC_MspDeInit 0 */
  272. /* USER CODE END LTDC_MspDeInit 0 */
  273. /* Peripheral clock disable */
  274. __HAL_RCC_LTDC_CLK_DISABLE();
  275. /* USER CODE BEGIN LTDC_MspDeInit 1 */
  276. /* USER CODE END LTDC_MspDeInit 1 */
  277. }
  278. }
  279. /**
  280. * @brief QSPI MSP Initialization
  281. * This function configures the hardware resources used in this example
  282. * @param hqspi: QSPI handle pointer
  283. * @retval None
  284. */
  285. void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)
  286. {
  287. GPIO_InitTypeDef GPIO_InitStruct = {0};
  288. if(hqspi->Instance==QUADSPI)
  289. {
  290. /* USER CODE BEGIN QUADSPI_MspInit 0 */
  291. /* USER CODE END QUADSPI_MspInit 0 */
  292. /* Peripheral clock enable */
  293. __HAL_RCC_QSPI_CLK_ENABLE();
  294. __HAL_RCC_GPIOB_CLK_ENABLE();
  295. __HAL_RCC_GPIOF_CLK_ENABLE();
  296. /**QUADSPI GPIO Configuration
  297. PB6 ------> QUADSPI_BK1_NCS
  298. PF7 ------> QUADSPI_BK1_IO2
  299. PF6 ------> QUADSPI_BK1_IO3
  300. PF10 ------> QUADSPI_CLK
  301. PF9 ------> QUADSPI_BK1_IO1
  302. PF8 ------> QUADSPI_BK1_IO0
  303. */
  304. GPIO_InitStruct.Pin = GPIO_PIN_6;
  305. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  306. GPIO_InitStruct.Pull = GPIO_NOPULL;
  307. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  308. GPIO_InitStruct.Alternate = GPIO_AF10_QSPI;
  309. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  310. GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_10;
  311. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  312. GPIO_InitStruct.Pull = GPIO_NOPULL;
  313. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  314. GPIO_InitStruct.Alternate = GPIO_AF9_QSPI;
  315. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  316. GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_8;
  317. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  318. GPIO_InitStruct.Pull = GPIO_NOPULL;
  319. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  320. GPIO_InitStruct.Alternate = GPIO_AF10_QSPI;
  321. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  322. /* USER CODE BEGIN QUADSPI_MspInit 1 */
  323. /* USER CODE END QUADSPI_MspInit 1 */
  324. }
  325. }
  326. /**
  327. * @brief QSPI MSP De-Initialization
  328. * This function freeze the hardware resources used in this example
  329. * @param hqspi: QSPI handle pointer
  330. * @retval None
  331. */
  332. void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef* hqspi)
  333. {
  334. if(hqspi->Instance==QUADSPI)
  335. {
  336. /* USER CODE BEGIN QUADSPI_MspDeInit 0 */
  337. /* USER CODE END QUADSPI_MspDeInit 0 */
  338. /* Peripheral clock disable */
  339. __HAL_RCC_QSPI_CLK_DISABLE();
  340. /**QUADSPI GPIO Configuration
  341. PB6 ------> QUADSPI_BK1_NCS
  342. PF7 ------> QUADSPI_BK1_IO2
  343. PF6 ------> QUADSPI_BK1_IO3
  344. PF10 ------> QUADSPI_CLK
  345. PF9 ------> QUADSPI_BK1_IO1
  346. PF8 ------> QUADSPI_BK1_IO0
  347. */
  348. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6);
  349. HAL_GPIO_DeInit(GPIOF, GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_10|GPIO_PIN_9
  350. |GPIO_PIN_8);
  351. /* USER CODE BEGIN QUADSPI_MspDeInit 1 */
  352. /* USER CODE END QUADSPI_MspDeInit 1 */
  353. }
  354. }
  355. /**
  356. * @brief TIM_Base MSP Initialization
  357. * This function configures the hardware resources used in this example
  358. * @param htim_base: TIM_Base handle pointer
  359. * @retval None
  360. */
  361. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
  362. {
  363. GPIO_InitTypeDef GPIO_InitStruct = {0};
  364. if(htim_base->Instance==TIM4)
  365. {
  366. /* USER CODE BEGIN TIM4_MspInit 0 */
  367. /* USER CODE END TIM4_MspInit 0 */
  368. /* Peripheral clock enable */
  369. __HAL_RCC_TIM4_CLK_ENABLE();
  370. __HAL_RCC_GPIOD_CLK_ENABLE();
  371. /**TIM4 GPIO Configuration
  372. PD12 ------> TIM4_CH1
  373. */
  374. GPIO_InitStruct.Pin = GPIO_PIN_12;
  375. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  376. GPIO_InitStruct.Pull = GPIO_NOPULL;
  377. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  378. GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
  379. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  380. /* USER CODE BEGIN TIM4_MspInit 1 */
  381. /* USER CODE END TIM4_MspInit 1 */
  382. }
  383. }
  384. void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
  385. {
  386. GPIO_InitTypeDef GPIO_InitStruct = {0};
  387. if(htim->Instance==TIM4)
  388. {
  389. /* USER CODE BEGIN TIM4_MspPostInit 0 */
  390. /* USER CODE END TIM4_MspPostInit 0 */
  391. __HAL_RCC_GPIOD_CLK_ENABLE();
  392. /**TIM4 GPIO Configuration
  393. PD13 ------> TIM4_CH2
  394. */
  395. GPIO_InitStruct.Pin = GPIO_PIN_13;
  396. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  397. GPIO_InitStruct.Pull = GPIO_NOPULL;
  398. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  399. GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
  400. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  401. /* USER CODE BEGIN TIM4_MspPostInit 1 */
  402. /* USER CODE END TIM4_MspPostInit 1 */
  403. }
  404. }
  405. /**
  406. * @brief TIM_Base MSP De-Initialization
  407. * This function freeze the hardware resources used in this example
  408. * @param htim_base: TIM_Base handle pointer
  409. * @retval None
  410. */
  411. void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
  412. {
  413. if(htim_base->Instance==TIM4)
  414. {
  415. /* USER CODE BEGIN TIM4_MspDeInit 0 */
  416. /* USER CODE END TIM4_MspDeInit 0 */
  417. /* Peripheral clock disable */
  418. __HAL_RCC_TIM4_CLK_DISABLE();
  419. /**TIM4 GPIO Configuration
  420. PD12 ------> TIM4_CH1
  421. PD13 ------> TIM4_CH2
  422. */
  423. HAL_GPIO_DeInit(GPIOD, GPIO_PIN_12|GPIO_PIN_13);
  424. /* USER CODE BEGIN TIM4_MspDeInit 1 */
  425. /* USER CODE END TIM4_MspDeInit 1 */
  426. }
  427. }
  428. /**
  429. * @brief UART MSP Initialization
  430. * This function configures the hardware resources used in this example
  431. * @param huart: UART handle pointer
  432. * @retval None
  433. */
  434. void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  435. {
  436. GPIO_InitTypeDef GPIO_InitStruct = {0};
  437. if(huart->Instance==USART3)
  438. {
  439. /* USER CODE BEGIN USART3_MspInit 0 */
  440. /* USER CODE END USART3_MspInit 0 */
  441. /* Peripheral clock enable */
  442. __HAL_RCC_USART3_CLK_ENABLE();
  443. __HAL_RCC_GPIOB_CLK_ENABLE();
  444. /**USART3 GPIO Configuration
  445. PB10 ------> USART3_TX
  446. PB11 ------> USART3_RX
  447. */
  448. GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
  449. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  450. GPIO_InitStruct.Pull = GPIO_PULLUP;
  451. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  452. GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
  453. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  454. /* USER CODE BEGIN USART3_MspInit 1 */
  455. /* USER CODE END USART3_MspInit 1 */
  456. }
  457. }
  458. /**
  459. * @brief UART MSP De-Initialization
  460. * This function freeze the hardware resources used in this example
  461. * @param huart: UART handle pointer
  462. * @retval None
  463. */
  464. void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
  465. {
  466. if(huart->Instance==USART3)
  467. {
  468. /* USER CODE BEGIN USART3_MspDeInit 0 */
  469. /* USER CODE END USART3_MspDeInit 0 */
  470. /* Peripheral clock disable */
  471. __HAL_RCC_USART3_CLK_DISABLE();
  472. /**USART3 GPIO Configuration
  473. PB10 ------> USART3_TX
  474. PB11 ------> USART3_RX
  475. */
  476. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11);
  477. /* USER CODE BEGIN USART3_MspDeInit 1 */
  478. /* USER CODE END USART3_MspDeInit 1 */
  479. }
  480. }
  481. /**
  482. * @brief PCD MSP Initialization
  483. * This function configures the hardware resources used in this example
  484. * @param hpcd: PCD handle pointer
  485. * @retval None
  486. */
  487. void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)
  488. {
  489. GPIO_InitTypeDef GPIO_InitStruct = {0};
  490. if(hpcd->Instance==USB_OTG_FS)
  491. {
  492. /* USER CODE BEGIN USB_OTG_FS_MspInit 0 */
  493. /* USER CODE END USB_OTG_FS_MspInit 0 */
  494. __HAL_RCC_GPIOA_CLK_ENABLE();
  495. /**USB_OTG_FS GPIO Configuration
  496. PA12 ------> USB_OTG_FS_DP
  497. PA11 ------> USB_OTG_FS_DM
  498. */
  499. GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_11;
  500. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  501. GPIO_InitStruct.Pull = GPIO_NOPULL;
  502. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  503. GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
  504. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  505. /* Peripheral clock enable */
  506. __HAL_RCC_USB_OTG_FS_CLK_ENABLE();
  507. /* USB_OTG_FS interrupt Init */
  508. HAL_NVIC_SetPriority(OTG_FS_IRQn, 0, 0);
  509. HAL_NVIC_EnableIRQ(OTG_FS_IRQn);
  510. /* USER CODE BEGIN USB_OTG_FS_MspInit 1 */
  511. /* USER CODE END USB_OTG_FS_MspInit 1 */
  512. }
  513. }
  514. /**
  515. * @brief PCD MSP De-Initialization
  516. * This function freeze the hardware resources used in this example
  517. * @param hpcd: PCD handle pointer
  518. * @retval None
  519. */
  520. void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd)
  521. {
  522. if(hpcd->Instance==USB_OTG_FS)
  523. {
  524. /* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */
  525. /* USER CODE END USB_OTG_FS_MspDeInit 0 */
  526. /* Peripheral clock disable */
  527. __HAL_RCC_USB_OTG_FS_CLK_DISABLE();
  528. /**USB_OTG_FS GPIO Configuration
  529. PA12 ------> USB_OTG_FS_DP
  530. PA11 ------> USB_OTG_FS_DM
  531. */
  532. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_12|GPIO_PIN_11);
  533. /* USB_OTG_FS interrupt DeInit */
  534. HAL_NVIC_DisableIRQ(OTG_FS_IRQn);
  535. /* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */
  536. /* USER CODE END USB_OTG_FS_MspDeInit 1 */
  537. }
  538. }
  539. static uint32_t FMC_Initialized = 0;
  540. static void HAL_FMC_MspInit(void){
  541. /* USER CODE BEGIN FMC_MspInit 0 */
  542. /* USER CODE END FMC_MspInit 0 */
  543. GPIO_InitTypeDef GPIO_InitStruct;
  544. if (FMC_Initialized) {
  545. return;
  546. }
  547. FMC_Initialized = 1;
  548. /* Peripheral clock enable */
  549. __HAL_RCC_FMC_CLK_ENABLE();
  550. /** FMC GPIO Configuration
  551. PE1 ------> FMC_NBL1
  552. PE0 ------> FMC_NBL0
  553. PG15 ------> FMC_SDNCAS
  554. PD0 ------> FMC_D2
  555. PI4 ------> FMC_NBL2
  556. PD1 ------> FMC_D3
  557. PI3 ------> FMC_D27
  558. PI2 ------> FMC_D26
  559. PF0 ------> FMC_A0
  560. PI5 ------> FMC_NBL3
  561. PI7 ------> FMC_D29
  562. PI10 ------> FMC_D31
  563. PI6 ------> FMC_D28
  564. PH15 ------> FMC_D23
  565. PI1 ------> FMC_D25
  566. PF1 ------> FMC_A1
  567. PI9 ------> FMC_D30
  568. PH13 ------> FMC_D21
  569. PH14 ------> FMC_D22
  570. PI0 ------> FMC_D24
  571. PF2 ------> FMC_A2
  572. PF3 ------> FMC_A3
  573. PG8 ------> FMC_SDCLK
  574. PF4 ------> FMC_A4
  575. PH3 ------> FMC_SDNE0
  576. PF5 ------> FMC_A5
  577. PH2 ------> FMC_SDCKE0
  578. PD15 ------> FMC_D1
  579. PD10 ------> FMC_D15
  580. PD14 ------> FMC_D0
  581. PD9 ------> FMC_D14
  582. PD8 ------> FMC_D13
  583. PC0 ------> FMC_SDNWE
  584. PF12 ------> FMC_A6
  585. PG1 ------> FMC_A11
  586. PF15 ------> FMC_A9
  587. PH12 ------> FMC_D20
  588. PF13 ------> FMC_A7
  589. PG0 ------> FMC_A10
  590. PE8 ------> FMC_D5
  591. PG5 ------> FMC_BA1
  592. PG4 ------> FMC_BA0
  593. PH9 ------> FMC_D17
  594. PH11 ------> FMC_D19
  595. PF14 ------> FMC_A8
  596. PF11 ------> FMC_SDNRAS
  597. PE9 ------> FMC_D6
  598. PE11 ------> FMC_D8
  599. PE14 ------> FMC_D11
  600. PH8 ------> FMC_D16
  601. PH10 ------> FMC_D18
  602. PE7 ------> FMC_D4
  603. PE10 ------> FMC_D7
  604. PE12 ------> FMC_D9
  605. PE15 ------> FMC_D12
  606. PE13 ------> FMC_D10
  607. */
  608. GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_0|GPIO_PIN_8|GPIO_PIN_9
  609. |GPIO_PIN_11|GPIO_PIN_14|GPIO_PIN_7|GPIO_PIN_10
  610. |GPIO_PIN_12|GPIO_PIN_15|GPIO_PIN_13;
  611. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  612. GPIO_InitStruct.Pull = GPIO_NOPULL;
  613. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  614. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  615. HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
  616. GPIO_InitStruct.Pin = GPIO_PIN_15|GPIO_PIN_8|GPIO_PIN_1|GPIO_PIN_0
  617. |GPIO_PIN_5|GPIO_PIN_4;
  618. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  619. GPIO_InitStruct.Pull = GPIO_NOPULL;
  620. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  621. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  622. HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
  623. GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_15|GPIO_PIN_10
  624. |GPIO_PIN_14|GPIO_PIN_9|GPIO_PIN_8;
  625. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  626. GPIO_InitStruct.Pull = GPIO_NOPULL;
  627. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  628. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  629. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  630. GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_5
  631. |GPIO_PIN_7|GPIO_PIN_10|GPIO_PIN_6|GPIO_PIN_1
  632. |GPIO_PIN_9|GPIO_PIN_0;
  633. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  634. GPIO_InitStruct.Pull = GPIO_NOPULL;
  635. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  636. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  637. HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);
  638. GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
  639. |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_15
  640. |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_11;
  641. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  642. GPIO_InitStruct.Pull = GPIO_NOPULL;
  643. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  644. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  645. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  646. GPIO_InitStruct.Pin = GPIO_PIN_15|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_3
  647. |GPIO_PIN_2|GPIO_PIN_12|GPIO_PIN_9|GPIO_PIN_11
  648. |GPIO_PIN_8|GPIO_PIN_10;
  649. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  650. GPIO_InitStruct.Pull = GPIO_NOPULL;
  651. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  652. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  653. HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
  654. GPIO_InitStruct.Pin = GPIO_PIN_0;
  655. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  656. GPIO_InitStruct.Pull = GPIO_NOPULL;
  657. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  658. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  659. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  660. /* USER CODE BEGIN FMC_MspInit 1 */
  661. /* USER CODE END FMC_MspInit 1 */
  662. }
  663. void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef* hsdram){
  664. /* USER CODE BEGIN SDRAM_MspInit 0 */
  665. /* USER CODE END SDRAM_MspInit 0 */
  666. HAL_FMC_MspInit();
  667. /* USER CODE BEGIN SDRAM_MspInit 1 */
  668. /* USER CODE END SDRAM_MspInit 1 */
  669. }
  670. static uint32_t FMC_DeInitialized = 0;
  671. static void HAL_FMC_MspDeInit(void){
  672. /* USER CODE BEGIN FMC_MspDeInit 0 */
  673. /* USER CODE END FMC_MspDeInit 0 */
  674. if (FMC_DeInitialized) {
  675. return;
  676. }
  677. FMC_DeInitialized = 1;
  678. /* Peripheral clock enable */
  679. __HAL_RCC_FMC_CLK_DISABLE();
  680. /** FMC GPIO Configuration
  681. PE1 ------> FMC_NBL1
  682. PE0 ------> FMC_NBL0
  683. PG15 ------> FMC_SDNCAS
  684. PD0 ------> FMC_D2
  685. PI4 ------> FMC_NBL2
  686. PD1 ------> FMC_D3
  687. PI3 ------> FMC_D27
  688. PI2 ------> FMC_D26
  689. PF0 ------> FMC_A0
  690. PI5 ------> FMC_NBL3
  691. PI7 ------> FMC_D29
  692. PI10 ------> FMC_D31
  693. PI6 ------> FMC_D28
  694. PH15 ------> FMC_D23
  695. PI1 ------> FMC_D25
  696. PF1 ------> FMC_A1
  697. PI9 ------> FMC_D30
  698. PH13 ------> FMC_D21
  699. PH14 ------> FMC_D22
  700. PI0 ------> FMC_D24
  701. PF2 ------> FMC_A2
  702. PF3 ------> FMC_A3
  703. PG8 ------> FMC_SDCLK
  704. PF4 ------> FMC_A4
  705. PH3 ------> FMC_SDNE0
  706. PF5 ------> FMC_A5
  707. PH2 ------> FMC_SDCKE0
  708. PD15 ------> FMC_D1
  709. PD10 ------> FMC_D15
  710. PD14 ------> FMC_D0
  711. PD9 ------> FMC_D14
  712. PD8 ------> FMC_D13
  713. PC0 ------> FMC_SDNWE
  714. PF12 ------> FMC_A6
  715. PG1 ------> FMC_A11
  716. PF15 ------> FMC_A9
  717. PH12 ------> FMC_D20
  718. PF13 ------> FMC_A7
  719. PG0 ------> FMC_A10
  720. PE8 ------> FMC_D5
  721. PG5 ------> FMC_BA1
  722. PG4 ------> FMC_BA0
  723. PH9 ------> FMC_D17
  724. PH11 ------> FMC_D19
  725. PF14 ------> FMC_A8
  726. PF11 ------> FMC_SDNRAS
  727. PE9 ------> FMC_D6
  728. PE11 ------> FMC_D8
  729. PE14 ------> FMC_D11
  730. PH8 ------> FMC_D16
  731. PH10 ------> FMC_D18
  732. PE7 ------> FMC_D4
  733. PE10 ------> FMC_D7
  734. PE12 ------> FMC_D9
  735. PE15 ------> FMC_D12
  736. PE13 ------> FMC_D10
  737. */
  738. HAL_GPIO_DeInit(GPIOE, GPIO_PIN_1|GPIO_PIN_0|GPIO_PIN_8|GPIO_PIN_9
  739. |GPIO_PIN_11|GPIO_PIN_14|GPIO_PIN_7|GPIO_PIN_10
  740. |GPIO_PIN_12|GPIO_PIN_15|GPIO_PIN_13);
  741. HAL_GPIO_DeInit(GPIOG, GPIO_PIN_15|GPIO_PIN_8|GPIO_PIN_1|GPIO_PIN_0
  742. |GPIO_PIN_5|GPIO_PIN_4);
  743. HAL_GPIO_DeInit(GPIOD, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_15|GPIO_PIN_10
  744. |GPIO_PIN_14|GPIO_PIN_9|GPIO_PIN_8);
  745. HAL_GPIO_DeInit(GPIOI, GPIO_PIN_4|GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_5
  746. |GPIO_PIN_7|GPIO_PIN_10|GPIO_PIN_6|GPIO_PIN_1
  747. |GPIO_PIN_9|GPIO_PIN_0);
  748. HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
  749. |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_15
  750. |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_11);
  751. HAL_GPIO_DeInit(GPIOH, GPIO_PIN_15|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_3
  752. |GPIO_PIN_2|GPIO_PIN_12|GPIO_PIN_9|GPIO_PIN_11
  753. |GPIO_PIN_8|GPIO_PIN_10);
  754. HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0);
  755. /* USER CODE BEGIN FMC_MspDeInit 1 */
  756. /* USER CODE END FMC_MspDeInit 1 */
  757. }
  758. void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef* hsdram){
  759. /* USER CODE BEGIN SDRAM_MspDeInit 0 */
  760. /* USER CODE END SDRAM_MspDeInit 0 */
  761. HAL_FMC_MspDeInit();
  762. /* USER CODE BEGIN SDRAM_MspDeInit 1 */
  763. /* USER CODE END SDRAM_MspDeInit 1 */
  764. }
  765. /* USER CODE BEGIN 1 */
  766. /* USER CODE END 1 */
  767. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/