stm32f4xx_hal_msp.c 32 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237
  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. #include <drv_common.h>
  25. /* USER CODE END Includes */
  26. /* Private typedef -----------------------------------------------------------*/
  27. /* USER CODE BEGIN TD */
  28. /* USER CODE END TD */
  29. /* Private define ------------------------------------------------------------*/
  30. /* USER CODE BEGIN Define */
  31. /* USER CODE END Define */
  32. /* Private macro -------------------------------------------------------------*/
  33. /* USER CODE BEGIN Macro */
  34. /* USER CODE END Macro */
  35. /* Private variables ---------------------------------------------------------*/
  36. /* USER CODE BEGIN PV */
  37. /* USER CODE END PV */
  38. /* Private function prototypes -----------------------------------------------*/
  39. /* USER CODE BEGIN PFP */
  40. /* USER CODE END PFP */
  41. /* External functions --------------------------------------------------------*/
  42. /* USER CODE BEGIN ExternalFunctions */
  43. /* USER CODE END ExternalFunctions */
  44. /* USER CODE BEGIN 0 */
  45. /* USER CODE END 0 */
  46. void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
  47. /**
  48. * Initializes the Global MSP.
  49. */
  50. void HAL_MspInit(void)
  51. {
  52. /* USER CODE BEGIN MspInit 0 */
  53. /* USER CODE END MspInit 0 */
  54. __HAL_RCC_SYSCFG_CLK_ENABLE();
  55. __HAL_RCC_PWR_CLK_ENABLE();
  56. /* System interrupt init*/
  57. /* USER CODE BEGIN MspInit 1 */
  58. /* USER CODE END MspInit 1 */
  59. }
  60. /**
  61. * @brief ADC MSP Initialization
  62. * This function configures the hardware resources used in this example
  63. * @param hadc: ADC handle pointer
  64. * @retval None
  65. */
  66. void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
  67. {
  68. GPIO_InitTypeDef GPIO_InitStruct = {0};
  69. if(hadc->Instance==ADC1)
  70. {
  71. /* USER CODE BEGIN ADC1_MspInit 0 */
  72. /* USER CODE END ADC1_MspInit 0 */
  73. /* Peripheral clock enable */
  74. __HAL_RCC_ADC1_CLK_ENABLE();
  75. __HAL_RCC_GPIOC_CLK_ENABLE();
  76. __HAL_RCC_GPIOA_CLK_ENABLE();
  77. __HAL_RCC_GPIOB_CLK_ENABLE();
  78. /**ADC1 GPIO Configuration
  79. PC3 ------> ADC1_IN13
  80. PC2 ------> ADC1_IN12
  81. PA4 ------> ADC1_IN4
  82. PC4 ------> ADC1_IN14
  83. PC5 ------> ADC1_IN15
  84. PB1 ------> ADC1_IN9
  85. */
  86. GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5;
  87. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  88. GPIO_InitStruct.Pull = GPIO_NOPULL;
  89. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  90. GPIO_InitStruct.Pin = GPIO_PIN_4;
  91. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  92. GPIO_InitStruct.Pull = GPIO_NOPULL;
  93. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  94. GPIO_InitStruct.Pin = GPIO_PIN_1;
  95. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  96. GPIO_InitStruct.Pull = GPIO_NOPULL;
  97. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  98. /* USER CODE BEGIN ADC1_MspInit 1 */
  99. /* USER CODE END ADC1_MspInit 1 */
  100. }
  101. }
  102. /**
  103. * @brief ADC MSP De-Initialization
  104. * This function freeze the hardware resources used in this example
  105. * @param hadc: ADC handle pointer
  106. * @retval None
  107. */
  108. void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
  109. {
  110. if(hadc->Instance==ADC1)
  111. {
  112. /* USER CODE BEGIN ADC1_MspDeInit 0 */
  113. /* USER CODE END ADC1_MspDeInit 0 */
  114. /* Peripheral clock disable */
  115. __HAL_RCC_ADC1_CLK_DISABLE();
  116. /**ADC1 GPIO Configuration
  117. PC3 ------> ADC1_IN13
  118. PC2 ------> ADC1_IN12
  119. PA4 ------> ADC1_IN4
  120. PC4 ------> ADC1_IN14
  121. PC5 ------> ADC1_IN15
  122. PB1 ------> ADC1_IN9
  123. */
  124. HAL_GPIO_DeInit(GPIOC, GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5);
  125. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4);
  126. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_1);
  127. /* USER CODE BEGIN ADC1_MspDeInit 1 */
  128. /* USER CODE END ADC1_MspDeInit 1 */
  129. }
  130. }
  131. /**
  132. * @brief CRC MSP Initialization
  133. * This function configures the hardware resources used in this example
  134. * @param hcrc: CRC handle pointer
  135. * @retval None
  136. */
  137. void HAL_CRC_MspInit(CRC_HandleTypeDef* hcrc)
  138. {
  139. if(hcrc->Instance==CRC)
  140. {
  141. /* USER CODE BEGIN CRC_MspInit 0 */
  142. /* USER CODE END CRC_MspInit 0 */
  143. /* Peripheral clock enable */
  144. __HAL_RCC_CRC_CLK_ENABLE();
  145. /* USER CODE BEGIN CRC_MspInit 1 */
  146. /* USER CODE END CRC_MspInit 1 */
  147. }
  148. }
  149. /**
  150. * @brief CRC MSP De-Initialization
  151. * This function freeze the hardware resources used in this example
  152. * @param hcrc: CRC handle pointer
  153. * @retval None
  154. */
  155. void HAL_CRC_MspDeInit(CRC_HandleTypeDef* hcrc)
  156. {
  157. if(hcrc->Instance==CRC)
  158. {
  159. /* USER CODE BEGIN CRC_MspDeInit 0 */
  160. /* USER CODE END CRC_MspDeInit 0 */
  161. /* Peripheral clock disable */
  162. __HAL_RCC_CRC_CLK_DISABLE();
  163. /* USER CODE BEGIN CRC_MspDeInit 1 */
  164. /* USER CODE END CRC_MspDeInit 1 */
  165. }
  166. }
  167. /**
  168. * @brief DMA2D MSP Initialization
  169. * This function configures the hardware resources used in this example
  170. * @param hdma2d: DMA2D handle pointer
  171. * @retval None
  172. */
  173. void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef* hdma2d)
  174. {
  175. if(hdma2d->Instance==DMA2D)
  176. {
  177. /* USER CODE BEGIN DMA2D_MspInit 0 */
  178. /* USER CODE END DMA2D_MspInit 0 */
  179. /* Peripheral clock enable */
  180. __HAL_RCC_DMA2D_CLK_ENABLE();
  181. /* USER CODE BEGIN DMA2D_MspInit 1 */
  182. /* USER CODE END DMA2D_MspInit 1 */
  183. }
  184. }
  185. /**
  186. * @brief DMA2D MSP De-Initialization
  187. * This function freeze the hardware resources used in this example
  188. * @param hdma2d: DMA2D handle pointer
  189. * @retval None
  190. */
  191. void HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef* hdma2d)
  192. {
  193. if(hdma2d->Instance==DMA2D)
  194. {
  195. /* USER CODE BEGIN DMA2D_MspDeInit 0 */
  196. /* USER CODE END DMA2D_MspDeInit 0 */
  197. /* Peripheral clock disable */
  198. __HAL_RCC_DMA2D_CLK_DISABLE();
  199. /* USER CODE BEGIN DMA2D_MspDeInit 1 */
  200. /* USER CODE END DMA2D_MspDeInit 1 */
  201. }
  202. }
  203. /**
  204. * @brief DSI MSP Initialization
  205. * This function configures the hardware resources used in this example
  206. * @param hdsi: DSI handle pointer
  207. * @retval None
  208. */
  209. void HAL_DSI_MspInit(DSI_HandleTypeDef* hdsi)
  210. {
  211. if(hdsi->Instance==DSI)
  212. {
  213. /* USER CODE BEGIN DSI_MspInit 0 */
  214. /* USER CODE END DSI_MspInit 0 */
  215. /* Peripheral clock enable */
  216. __HAL_RCC_DSI_CLK_ENABLE();
  217. /* USER CODE BEGIN DSI_MspInit 1 */
  218. /* USER CODE END DSI_MspInit 1 */
  219. }
  220. }
  221. /**
  222. * @brief DSI MSP De-Initialization
  223. * This function freeze the hardware resources used in this example
  224. * @param hdsi: DSI handle pointer
  225. * @retval None
  226. */
  227. void HAL_DSI_MspDeInit(DSI_HandleTypeDef* hdsi)
  228. {
  229. if(hdsi->Instance==DSI)
  230. {
  231. /* USER CODE BEGIN DSI_MspDeInit 0 */
  232. /* USER CODE END DSI_MspDeInit 0 */
  233. /* Peripheral clock disable */
  234. __HAL_RCC_DSI_CLK_DISABLE();
  235. /* USER CODE BEGIN DSI_MspDeInit 1 */
  236. /* USER CODE END DSI_MspDeInit 1 */
  237. }
  238. }
  239. /**
  240. * @brief I2S MSP Initialization
  241. * This function configures the hardware resources used in this example
  242. * @param hi2s: I2S handle pointer
  243. * @retval None
  244. */
  245. void HAL_I2S_MspInit(I2S_HandleTypeDef* hi2s)
  246. {
  247. GPIO_InitTypeDef GPIO_InitStruct = {0};
  248. if(hi2s->Instance==SPI3)
  249. {
  250. /* USER CODE BEGIN SPI3_MspInit 0 */
  251. /* USER CODE END SPI3_MspInit 0 */
  252. /* Peripheral clock enable */
  253. __HAL_RCC_SPI3_CLK_ENABLE();
  254. __HAL_RCC_GPIOB_CLK_ENABLE();
  255. __HAL_RCC_GPIOA_CLK_ENABLE();
  256. __HAL_RCC_GPIOD_CLK_ENABLE();
  257. /**I2S3 GPIO Configuration
  258. PB3 ------> I2S3_CK
  259. PA15 ------> I2S3_WS
  260. PD6 ------> I2S3_SD
  261. */
  262. GPIO_InitStruct.Pin = GPIO_PIN_3;
  263. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  264. GPIO_InitStruct.Pull = GPIO_NOPULL;
  265. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  266. GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
  267. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  268. GPIO_InitStruct.Pin = GPIO_PIN_15;
  269. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  270. GPIO_InitStruct.Pull = GPIO_NOPULL;
  271. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  272. GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
  273. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  274. GPIO_InitStruct.Pin = GPIO_PIN_6;
  275. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  276. GPIO_InitStruct.Pull = GPIO_NOPULL;
  277. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  278. GPIO_InitStruct.Alternate = GPIO_AF5_I2S3ext;
  279. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  280. /* I2S3 interrupt Init */
  281. HAL_NVIC_SetPriority(SPI3_IRQn, 0, 0);
  282. HAL_NVIC_EnableIRQ(SPI3_IRQn);
  283. /* USER CODE BEGIN SPI3_MspInit 1 */
  284. /* USER CODE END SPI3_MspInit 1 */
  285. }
  286. }
  287. /**
  288. * @brief I2S MSP De-Initialization
  289. * This function freeze the hardware resources used in this example
  290. * @param hi2s: I2S handle pointer
  291. * @retval None
  292. */
  293. void HAL_I2S_MspDeInit(I2S_HandleTypeDef* hi2s)
  294. {
  295. if(hi2s->Instance==SPI3)
  296. {
  297. /* USER CODE BEGIN SPI3_MspDeInit 0 */
  298. /* USER CODE END SPI3_MspDeInit 0 */
  299. /* Peripheral clock disable */
  300. __HAL_RCC_SPI3_CLK_DISABLE();
  301. /**I2S3 GPIO Configuration
  302. PB3 ------> I2S3_CK
  303. PA15 ------> I2S3_WS
  304. PD6 ------> I2S3_SD
  305. */
  306. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_3);
  307. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_15);
  308. HAL_GPIO_DeInit(GPIOD, GPIO_PIN_6);
  309. /* I2S3 interrupt DeInit */
  310. HAL_NVIC_DisableIRQ(SPI3_IRQn);
  311. /* USER CODE BEGIN SPI3_MspDeInit 1 */
  312. /* USER CODE END SPI3_MspDeInit 1 */
  313. }
  314. }
  315. /**
  316. * @brief LTDC MSP Initialization
  317. * This function configures the hardware resources used in this example
  318. * @param hltdc: LTDC handle pointer
  319. * @retval None
  320. */
  321. void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
  322. {
  323. if(hltdc->Instance==LTDC)
  324. {
  325. /* USER CODE BEGIN LTDC_MspInit 0 */
  326. /* USER CODE END LTDC_MspInit 0 */
  327. /* Peripheral clock enable */
  328. __HAL_RCC_LTDC_CLK_ENABLE();
  329. /* USER CODE BEGIN LTDC_MspInit 1 */
  330. /* USER CODE END LTDC_MspInit 1 */
  331. }
  332. }
  333. /**
  334. * @brief LTDC MSP De-Initialization
  335. * This function freeze the hardware resources used in this example
  336. * @param hltdc: LTDC handle pointer
  337. * @retval None
  338. */
  339. void HAL_LTDC_MspDeInit(LTDC_HandleTypeDef* hltdc)
  340. {
  341. if(hltdc->Instance==LTDC)
  342. {
  343. /* USER CODE BEGIN LTDC_MspDeInit 0 */
  344. /* USER CODE END LTDC_MspDeInit 0 */
  345. /* Peripheral clock disable */
  346. __HAL_RCC_LTDC_CLK_DISABLE();
  347. /* USER CODE BEGIN LTDC_MspDeInit 1 */
  348. /* USER CODE END LTDC_MspDeInit 1 */
  349. }
  350. }
  351. /**
  352. * @brief QSPI MSP Initialization
  353. * This function configures the hardware resources used in this example
  354. * @param hqspi: QSPI handle pointer
  355. * @retval None
  356. */
  357. void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)
  358. {
  359. GPIO_InitTypeDef GPIO_InitStruct = {0};
  360. if(hqspi->Instance==QUADSPI)
  361. {
  362. /* USER CODE BEGIN QUADSPI_MspInit 0 */
  363. /* USER CODE END QUADSPI_MspInit 0 */
  364. /* Peripheral clock enable */
  365. __HAL_RCC_QSPI_CLK_ENABLE();
  366. __HAL_RCC_GPIOB_CLK_ENABLE();
  367. __HAL_RCC_GPIOF_CLK_ENABLE();
  368. /**QUADSPI GPIO Configuration
  369. PB6 ------> QUADSPI_BK1_NCS
  370. PF7 ------> QUADSPI_BK1_IO2
  371. PF6 ------> QUADSPI_BK1_IO3
  372. PF10 ------> QUADSPI_CLK
  373. PF9 ------> QUADSPI_BK1_IO1
  374. PF8 ------> QUADSPI_BK1_IO0
  375. */
  376. GPIO_InitStruct.Pin = GPIO_PIN_6;
  377. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  378. GPIO_InitStruct.Pull = GPIO_NOPULL;
  379. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  380. GPIO_InitStruct.Alternate = GPIO_AF10_QSPI;
  381. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  382. GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_10;
  383. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  384. GPIO_InitStruct.Pull = GPIO_NOPULL;
  385. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  386. GPIO_InitStruct.Alternate = GPIO_AF9_QSPI;
  387. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  388. GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_8;
  389. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  390. GPIO_InitStruct.Pull = GPIO_NOPULL;
  391. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  392. GPIO_InitStruct.Alternate = GPIO_AF10_QSPI;
  393. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  394. /* USER CODE BEGIN QUADSPI_MspInit 1 */
  395. /* USER CODE END QUADSPI_MspInit 1 */
  396. }
  397. }
  398. /**
  399. * @brief QSPI MSP De-Initialization
  400. * This function freeze the hardware resources used in this example
  401. * @param hqspi: QSPI handle pointer
  402. * @retval None
  403. */
  404. void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef* hqspi)
  405. {
  406. if(hqspi->Instance==QUADSPI)
  407. {
  408. /* USER CODE BEGIN QUADSPI_MspDeInit 0 */
  409. /* USER CODE END QUADSPI_MspDeInit 0 */
  410. /* Peripheral clock disable */
  411. __HAL_RCC_QSPI_CLK_DISABLE();
  412. /**QUADSPI GPIO Configuration
  413. PB6 ------> QUADSPI_BK1_NCS
  414. PF7 ------> QUADSPI_BK1_IO2
  415. PF6 ------> QUADSPI_BK1_IO3
  416. PF10 ------> QUADSPI_CLK
  417. PF9 ------> QUADSPI_BK1_IO1
  418. PF8 ------> QUADSPI_BK1_IO0
  419. */
  420. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6);
  421. HAL_GPIO_DeInit(GPIOF, GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_10|GPIO_PIN_9
  422. |GPIO_PIN_8);
  423. /* USER CODE BEGIN QUADSPI_MspDeInit 1 */
  424. /* USER CODE END QUADSPI_MspDeInit 1 */
  425. }
  426. }
  427. /**
  428. * @brief SD MSP Initialization
  429. * This function configures the hardware resources used in this example
  430. * @param hsd: SD handle pointer
  431. * @retval None
  432. */
  433. void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
  434. {
  435. GPIO_InitTypeDef GPIO_InitStruct = {0};
  436. if(hsd->Instance==SDIO)
  437. {
  438. /* USER CODE BEGIN SDIO_MspInit 0 */
  439. /* USER CODE END SDIO_MspInit 0 */
  440. /* Peripheral clock enable */
  441. __HAL_RCC_SDIO_CLK_ENABLE();
  442. __HAL_RCC_GPIOC_CLK_ENABLE();
  443. __HAL_RCC_GPIOD_CLK_ENABLE();
  444. /**SDIO GPIO Configuration
  445. PC12 ------> SDIO_CK
  446. PC11 ------> SDIO_D3
  447. PC10 ------> SDIO_D2
  448. PD2 ------> SDIO_CMD
  449. PC9 ------> SDIO_D1
  450. PC8 ------> SDIO_D0
  451. */
  452. GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_11|GPIO_PIN_10|GPIO_PIN_9
  453. |GPIO_PIN_8;
  454. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  455. GPIO_InitStruct.Pull = GPIO_NOPULL;
  456. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  457. GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
  458. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  459. GPIO_InitStruct.Pin = GPIO_PIN_2;
  460. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  461. GPIO_InitStruct.Pull = GPIO_NOPULL;
  462. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  463. GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
  464. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  465. /* USER CODE BEGIN SDIO_MspInit 1 */
  466. /* USER CODE END SDIO_MspInit 1 */
  467. }
  468. }
  469. /**
  470. * @brief SD MSP De-Initialization
  471. * This function freeze the hardware resources used in this example
  472. * @param hsd: SD handle pointer
  473. * @retval None
  474. */
  475. void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
  476. {
  477. if(hsd->Instance==SDIO)
  478. {
  479. /* USER CODE BEGIN SDIO_MspDeInit 0 */
  480. /* USER CODE END SDIO_MspDeInit 0 */
  481. /* Peripheral clock disable */
  482. __HAL_RCC_SDIO_CLK_DISABLE();
  483. /**SDIO GPIO Configuration
  484. PC12 ------> SDIO_CK
  485. PC11 ------> SDIO_D3
  486. PC10 ------> SDIO_D2
  487. PD2 ------> SDIO_CMD
  488. PC9 ------> SDIO_D1
  489. PC8 ------> SDIO_D0
  490. */
  491. HAL_GPIO_DeInit(GPIOC, GPIO_PIN_12|GPIO_PIN_11|GPIO_PIN_10|GPIO_PIN_9
  492. |GPIO_PIN_8);
  493. HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
  494. /* USER CODE BEGIN SDIO_MspDeInit 1 */
  495. /* USER CODE END SDIO_MspDeInit 1 */
  496. }
  497. }
  498. /**
  499. * @brief TIM_Base MSP Initialization
  500. * This function configures the hardware resources used in this example
  501. * @param htim_base: TIM_Base handle pointer
  502. * @retval None
  503. */
  504. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
  505. {
  506. GPIO_InitTypeDef GPIO_InitStruct = {0};
  507. if(htim_base->Instance==TIM2)
  508. {
  509. /* USER CODE BEGIN TIM2_MspInit 0 */
  510. /* USER CODE END TIM2_MspInit 0 */
  511. /* Peripheral clock enable */
  512. __HAL_RCC_TIM2_CLK_ENABLE();
  513. /* USER CODE BEGIN TIM2_MspInit 1 */
  514. /* USER CODE END TIM2_MspInit 1 */
  515. }
  516. else if(htim_base->Instance==TIM3)
  517. {
  518. /* USER CODE BEGIN TIM3_MspInit 0 */
  519. /* USER CODE END TIM3_MspInit 0 */
  520. /* Peripheral clock enable */
  521. __HAL_RCC_TIM3_CLK_ENABLE();
  522. /* USER CODE BEGIN TIM3_MspInit 1 */
  523. /* USER CODE END TIM3_MspInit 1 */
  524. }
  525. else if(htim_base->Instance==TIM4)
  526. {
  527. /* USER CODE BEGIN TIM4_MspInit 0 */
  528. /* USER CODE END TIM4_MspInit 0 */
  529. /* Peripheral clock enable */
  530. __HAL_RCC_TIM4_CLK_ENABLE();
  531. __HAL_RCC_GPIOD_CLK_ENABLE();
  532. /**TIM4 GPIO Configuration
  533. PD12 ------> TIM4_CH1
  534. */
  535. GPIO_InitStruct.Pin = GPIO_PIN_12;
  536. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  537. GPIO_InitStruct.Pull = GPIO_NOPULL;
  538. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  539. GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
  540. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  541. /* USER CODE BEGIN TIM4_MspInit 1 */
  542. /* USER CODE END TIM4_MspInit 1 */
  543. }
  544. else if(htim_base->Instance==TIM12)
  545. {
  546. /* USER CODE BEGIN TIM12_MspInit 0 */
  547. /* USER CODE END TIM12_MspInit 0 */
  548. /* Peripheral clock enable */
  549. __HAL_RCC_TIM12_CLK_ENABLE();
  550. /* USER CODE BEGIN TIM12_MspInit 1 */
  551. /* USER CODE END TIM12_MspInit 1 */
  552. }
  553. }
  554. void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
  555. {
  556. GPIO_InitTypeDef GPIO_InitStruct = {0};
  557. if(htim->Instance==TIM2)
  558. {
  559. /* USER CODE BEGIN TIM2_MspPostInit 0 */
  560. /* USER CODE END TIM2_MspPostInit 0 */
  561. __HAL_RCC_GPIOA_CLK_ENABLE();
  562. /**TIM2 GPIO Configuration
  563. PA1 ------> TIM2_CH2
  564. PA2 ------> TIM2_CH3
  565. */
  566. GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2;
  567. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  568. GPIO_InitStruct.Pull = GPIO_NOPULL;
  569. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  570. GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
  571. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  572. /* USER CODE BEGIN TIM2_MspPostInit 1 */
  573. /* USER CODE END TIM2_MspPostInit 1 */
  574. }
  575. else if(htim->Instance==TIM3)
  576. {
  577. /* USER CODE BEGIN TIM3_MspPostInit 0 */
  578. /* USER CODE END TIM3_MspPostInit 0 */
  579. __HAL_RCC_GPIOA_CLK_ENABLE();
  580. /**TIM3 GPIO Configuration
  581. PA6 ------> TIM3_CH1
  582. PA7 ------> TIM3_CH2
  583. */
  584. GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
  585. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  586. GPIO_InitStruct.Pull = GPIO_NOPULL;
  587. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  588. GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
  589. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  590. /* USER CODE BEGIN TIM3_MspPostInit 1 */
  591. /* USER CODE END TIM3_MspPostInit 1 */
  592. }
  593. else if(htim->Instance==TIM4)
  594. {
  595. /* USER CODE BEGIN TIM4_MspPostInit 0 */
  596. /* USER CODE END TIM4_MspPostInit 0 */
  597. __HAL_RCC_GPIOD_CLK_ENABLE();
  598. /**TIM4 GPIO Configuration
  599. PD13 ------> TIM4_CH2
  600. */
  601. GPIO_InitStruct.Pin = GPIO_PIN_13;
  602. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  603. GPIO_InitStruct.Pull = GPIO_NOPULL;
  604. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  605. GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
  606. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  607. /* USER CODE BEGIN TIM4_MspPostInit 1 */
  608. /* USER CODE END TIM4_MspPostInit 1 */
  609. }
  610. else if(htim->Instance==TIM12)
  611. {
  612. /* USER CODE BEGIN TIM12_MspPostInit 0 */
  613. /* USER CODE END TIM12_MspPostInit 0 */
  614. __HAL_RCC_GPIOH_CLK_ENABLE();
  615. __HAL_RCC_GPIOB_CLK_ENABLE();
  616. /**TIM12 GPIO Configuration
  617. PH6 ------> TIM12_CH1
  618. PB15 ------> TIM12_CH2
  619. */
  620. GPIO_InitStruct.Pin = GPIO_PIN_6;
  621. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  622. GPIO_InitStruct.Pull = GPIO_NOPULL;
  623. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  624. GPIO_InitStruct.Alternate = GPIO_AF9_TIM12;
  625. HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
  626. GPIO_InitStruct.Pin = GPIO_PIN_15;
  627. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  628. GPIO_InitStruct.Pull = GPIO_NOPULL;
  629. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  630. GPIO_InitStruct.Alternate = GPIO_AF9_TIM12;
  631. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  632. /* USER CODE BEGIN TIM12_MspPostInit 1 */
  633. /* USER CODE END TIM12_MspPostInit 1 */
  634. }
  635. }
  636. /**
  637. * @brief TIM_Base MSP De-Initialization
  638. * This function freeze the hardware resources used in this example
  639. * @param htim_base: TIM_Base handle pointer
  640. * @retval None
  641. */
  642. void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
  643. {
  644. if(htim_base->Instance==TIM2)
  645. {
  646. /* USER CODE BEGIN TIM2_MspDeInit 0 */
  647. /* USER CODE END TIM2_MspDeInit 0 */
  648. /* Peripheral clock disable */
  649. __HAL_RCC_TIM2_CLK_DISABLE();
  650. /* USER CODE BEGIN TIM2_MspDeInit 1 */
  651. /* USER CODE END TIM2_MspDeInit 1 */
  652. }
  653. else if(htim_base->Instance==TIM3)
  654. {
  655. /* USER CODE BEGIN TIM3_MspDeInit 0 */
  656. /* USER CODE END TIM3_MspDeInit 0 */
  657. /* Peripheral clock disable */
  658. __HAL_RCC_TIM3_CLK_DISABLE();
  659. /* USER CODE BEGIN TIM3_MspDeInit 1 */
  660. /* USER CODE END TIM3_MspDeInit 1 */
  661. }
  662. else if(htim_base->Instance==TIM4)
  663. {
  664. /* USER CODE BEGIN TIM4_MspDeInit 0 */
  665. /* USER CODE END TIM4_MspDeInit 0 */
  666. /* Peripheral clock disable */
  667. __HAL_RCC_TIM4_CLK_DISABLE();
  668. /**TIM4 GPIO Configuration
  669. PD12 ------> TIM4_CH1
  670. PD13 ------> TIM4_CH2
  671. */
  672. HAL_GPIO_DeInit(GPIOD, GPIO_PIN_12|GPIO_PIN_13);
  673. /* USER CODE BEGIN TIM4_MspDeInit 1 */
  674. /* USER CODE END TIM4_MspDeInit 1 */
  675. }
  676. else if(htim_base->Instance==TIM12)
  677. {
  678. /* USER CODE BEGIN TIM12_MspDeInit 0 */
  679. /* USER CODE END TIM12_MspDeInit 0 */
  680. /* Peripheral clock disable */
  681. __HAL_RCC_TIM12_CLK_DISABLE();
  682. /* USER CODE BEGIN TIM12_MspDeInit 1 */
  683. /* USER CODE END TIM12_MspDeInit 1 */
  684. }
  685. }
  686. /**
  687. * @brief UART MSP Initialization
  688. * This function configures the hardware resources used in this example
  689. * @param huart: UART handle pointer
  690. * @retval None
  691. */
  692. void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  693. {
  694. GPIO_InitTypeDef GPIO_InitStruct = {0};
  695. if(huart->Instance==USART3)
  696. {
  697. /* USER CODE BEGIN USART3_MspInit 0 */
  698. /* USER CODE END USART3_MspInit 0 */
  699. /* Peripheral clock enable */
  700. __HAL_RCC_USART3_CLK_ENABLE();
  701. __HAL_RCC_GPIOB_CLK_ENABLE();
  702. /**USART3 GPIO Configuration
  703. PB10 ------> USART3_TX
  704. PB11 ------> USART3_RX
  705. */
  706. GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
  707. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  708. GPIO_InitStruct.Pull = GPIO_PULLUP;
  709. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  710. GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
  711. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  712. /* USER CODE BEGIN USART3_MspInit 1 */
  713. /* USER CODE END USART3_MspInit 1 */
  714. }
  715. }
  716. /**
  717. * @brief UART MSP De-Initialization
  718. * This function freeze the hardware resources used in this example
  719. * @param huart: UART handle pointer
  720. * @retval None
  721. */
  722. void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
  723. {
  724. if(huart->Instance==USART3)
  725. {
  726. /* USER CODE BEGIN USART3_MspDeInit 0 */
  727. /* USER CODE END USART3_MspDeInit 0 */
  728. /* Peripheral clock disable */
  729. __HAL_RCC_USART3_CLK_DISABLE();
  730. /**USART3 GPIO Configuration
  731. PB10 ------> USART3_TX
  732. PB11 ------> USART3_RX
  733. */
  734. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11);
  735. /* USER CODE BEGIN USART3_MspDeInit 1 */
  736. /* USER CODE END USART3_MspDeInit 1 */
  737. }
  738. }
  739. /**
  740. * @brief PCD MSP Initialization
  741. * This function configures the hardware resources used in this example
  742. * @param hpcd: PCD handle pointer
  743. * @retval None
  744. */
  745. void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)
  746. {
  747. GPIO_InitTypeDef GPIO_InitStruct = {0};
  748. if(hpcd->Instance==USB_OTG_FS)
  749. {
  750. /* USER CODE BEGIN USB_OTG_FS_MspInit 0 */
  751. /* USER CODE END USB_OTG_FS_MspInit 0 */
  752. __HAL_RCC_GPIOA_CLK_ENABLE();
  753. /**USB_OTG_FS GPIO Configuration
  754. PA12 ------> USB_OTG_FS_DP
  755. PA11 ------> USB_OTG_FS_DM
  756. */
  757. GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_11;
  758. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  759. GPIO_InitStruct.Pull = GPIO_NOPULL;
  760. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  761. GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
  762. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  763. /* Peripheral clock enable */
  764. __HAL_RCC_USB_OTG_FS_CLK_ENABLE();
  765. /* USB_OTG_FS interrupt Init */
  766. HAL_NVIC_SetPriority(OTG_FS_IRQn, 0, 0);
  767. HAL_NVIC_EnableIRQ(OTG_FS_IRQn);
  768. /* USER CODE BEGIN USB_OTG_FS_MspInit 1 */
  769. /* USER CODE END USB_OTG_FS_MspInit 1 */
  770. }
  771. }
  772. /**
  773. * @brief PCD MSP De-Initialization
  774. * This function freeze the hardware resources used in this example
  775. * @param hpcd: PCD handle pointer
  776. * @retval None
  777. */
  778. void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd)
  779. {
  780. if(hpcd->Instance==USB_OTG_FS)
  781. {
  782. /* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */
  783. /* USER CODE END USB_OTG_FS_MspDeInit 0 */
  784. /* Peripheral clock disable */
  785. __HAL_RCC_USB_OTG_FS_CLK_DISABLE();
  786. /**USB_OTG_FS GPIO Configuration
  787. PA12 ------> USB_OTG_FS_DP
  788. PA11 ------> USB_OTG_FS_DM
  789. */
  790. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_12|GPIO_PIN_11);
  791. /* USB_OTG_FS interrupt DeInit */
  792. HAL_NVIC_DisableIRQ(OTG_FS_IRQn);
  793. /* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */
  794. /* USER CODE END USB_OTG_FS_MspDeInit 1 */
  795. }
  796. }
  797. static uint32_t FMC_Initialized = 0;
  798. static void HAL_FMC_MspInit(void){
  799. /* USER CODE BEGIN FMC_MspInit 0 */
  800. /* USER CODE END FMC_MspInit 0 */
  801. GPIO_InitTypeDef GPIO_InitStruct;
  802. if (FMC_Initialized) {
  803. return;
  804. }
  805. FMC_Initialized = 1;
  806. /* Peripheral clock enable */
  807. __HAL_RCC_FMC_CLK_ENABLE();
  808. /** FMC GPIO Configuration
  809. PE1 ------> FMC_NBL1
  810. PE0 ------> FMC_NBL0
  811. PG15 ------> FMC_SDNCAS
  812. PD0 ------> FMC_D2
  813. PI4 ------> FMC_NBL2
  814. PD1 ------> FMC_D3
  815. PI3 ------> FMC_D27
  816. PI2 ------> FMC_D26
  817. PF0 ------> FMC_A0
  818. PI5 ------> FMC_NBL3
  819. PI7 ------> FMC_D29
  820. PI10 ------> FMC_D31
  821. PI6 ------> FMC_D28
  822. PH15 ------> FMC_D23
  823. PI1 ------> FMC_D25
  824. PF1 ------> FMC_A1
  825. PI9 ------> FMC_D30
  826. PH13 ------> FMC_D21
  827. PH14 ------> FMC_D22
  828. PI0 ------> FMC_D24
  829. PF2 ------> FMC_A2
  830. PF3 ------> FMC_A3
  831. PG8 ------> FMC_SDCLK
  832. PF4 ------> FMC_A4
  833. PH3 ------> FMC_SDNE0
  834. PF5 ------> FMC_A5
  835. PH2 ------> FMC_SDCKE0
  836. PD15 ------> FMC_D1
  837. PD10 ------> FMC_D15
  838. PD14 ------> FMC_D0
  839. PD9 ------> FMC_D14
  840. PD8 ------> FMC_D13
  841. PC0 ------> FMC_SDNWE
  842. PF12 ------> FMC_A6
  843. PG1 ------> FMC_A11
  844. PF15 ------> FMC_A9
  845. PH12 ------> FMC_D20
  846. PF13 ------> FMC_A7
  847. PG0 ------> FMC_A10
  848. PE8 ------> FMC_D5
  849. PG5 ------> FMC_BA1
  850. PG4 ------> FMC_BA0
  851. PH9 ------> FMC_D17
  852. PH11 ------> FMC_D19
  853. PF14 ------> FMC_A8
  854. PF11 ------> FMC_SDNRAS
  855. PE9 ------> FMC_D6
  856. PE11 ------> FMC_D8
  857. PE14 ------> FMC_D11
  858. PH8 ------> FMC_D16
  859. PH10 ------> FMC_D18
  860. PE7 ------> FMC_D4
  861. PE10 ------> FMC_D7
  862. PE12 ------> FMC_D9
  863. PE15 ------> FMC_D12
  864. PE13 ------> FMC_D10
  865. */
  866. GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_0|GPIO_PIN_8|GPIO_PIN_9
  867. |GPIO_PIN_11|GPIO_PIN_14|GPIO_PIN_7|GPIO_PIN_10
  868. |GPIO_PIN_12|GPIO_PIN_15|GPIO_PIN_13;
  869. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  870. GPIO_InitStruct.Pull = GPIO_NOPULL;
  871. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  872. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  873. HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
  874. GPIO_InitStruct.Pin = GPIO_PIN_15|GPIO_PIN_8|GPIO_PIN_1|GPIO_PIN_0
  875. |GPIO_PIN_5|GPIO_PIN_4;
  876. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  877. GPIO_InitStruct.Pull = GPIO_NOPULL;
  878. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  879. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  880. HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
  881. GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_15|GPIO_PIN_10
  882. |GPIO_PIN_14|GPIO_PIN_9|GPIO_PIN_8;
  883. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  884. GPIO_InitStruct.Pull = GPIO_NOPULL;
  885. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  886. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  887. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  888. GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_5
  889. |GPIO_PIN_7|GPIO_PIN_10|GPIO_PIN_6|GPIO_PIN_1
  890. |GPIO_PIN_9|GPIO_PIN_0;
  891. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  892. GPIO_InitStruct.Pull = GPIO_NOPULL;
  893. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  894. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  895. HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);
  896. GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
  897. |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_15
  898. |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_11;
  899. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  900. GPIO_InitStruct.Pull = GPIO_NOPULL;
  901. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  902. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  903. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  904. GPIO_InitStruct.Pin = GPIO_PIN_15|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_3
  905. |GPIO_PIN_2|GPIO_PIN_12|GPIO_PIN_9|GPIO_PIN_11
  906. |GPIO_PIN_8|GPIO_PIN_10;
  907. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  908. GPIO_InitStruct.Pull = GPIO_NOPULL;
  909. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  910. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  911. HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
  912. GPIO_InitStruct.Pin = GPIO_PIN_0;
  913. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  914. GPIO_InitStruct.Pull = GPIO_NOPULL;
  915. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  916. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  917. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  918. /* USER CODE BEGIN FMC_MspInit 1 */
  919. /* USER CODE END FMC_MspInit 1 */
  920. }
  921. void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef* hsdram){
  922. /* USER CODE BEGIN SDRAM_MspInit 0 */
  923. /* USER CODE END SDRAM_MspInit 0 */
  924. HAL_FMC_MspInit();
  925. /* USER CODE BEGIN SDRAM_MspInit 1 */
  926. /* USER CODE END SDRAM_MspInit 1 */
  927. }
  928. static uint32_t FMC_DeInitialized = 0;
  929. static void HAL_FMC_MspDeInit(void){
  930. /* USER CODE BEGIN FMC_MspDeInit 0 */
  931. /* USER CODE END FMC_MspDeInit 0 */
  932. if (FMC_DeInitialized) {
  933. return;
  934. }
  935. FMC_DeInitialized = 1;
  936. /* Peripheral clock enable */
  937. __HAL_RCC_FMC_CLK_DISABLE();
  938. /** FMC GPIO Configuration
  939. PE1 ------> FMC_NBL1
  940. PE0 ------> FMC_NBL0
  941. PG15 ------> FMC_SDNCAS
  942. PD0 ------> FMC_D2
  943. PI4 ------> FMC_NBL2
  944. PD1 ------> FMC_D3
  945. PI3 ------> FMC_D27
  946. PI2 ------> FMC_D26
  947. PF0 ------> FMC_A0
  948. PI5 ------> FMC_NBL3
  949. PI7 ------> FMC_D29
  950. PI10 ------> FMC_D31
  951. PI6 ------> FMC_D28
  952. PH15 ------> FMC_D23
  953. PI1 ------> FMC_D25
  954. PF1 ------> FMC_A1
  955. PI9 ------> FMC_D30
  956. PH13 ------> FMC_D21
  957. PH14 ------> FMC_D22
  958. PI0 ------> FMC_D24
  959. PF2 ------> FMC_A2
  960. PF3 ------> FMC_A3
  961. PG8 ------> FMC_SDCLK
  962. PF4 ------> FMC_A4
  963. PH3 ------> FMC_SDNE0
  964. PF5 ------> FMC_A5
  965. PH2 ------> FMC_SDCKE0
  966. PD15 ------> FMC_D1
  967. PD10 ------> FMC_D15
  968. PD14 ------> FMC_D0
  969. PD9 ------> FMC_D14
  970. PD8 ------> FMC_D13
  971. PC0 ------> FMC_SDNWE
  972. PF12 ------> FMC_A6
  973. PG1 ------> FMC_A11
  974. PF15 ------> FMC_A9
  975. PH12 ------> FMC_D20
  976. PF13 ------> FMC_A7
  977. PG0 ------> FMC_A10
  978. PE8 ------> FMC_D5
  979. PG5 ------> FMC_BA1
  980. PG4 ------> FMC_BA0
  981. PH9 ------> FMC_D17
  982. PH11 ------> FMC_D19
  983. PF14 ------> FMC_A8
  984. PF11 ------> FMC_SDNRAS
  985. PE9 ------> FMC_D6
  986. PE11 ------> FMC_D8
  987. PE14 ------> FMC_D11
  988. PH8 ------> FMC_D16
  989. PH10 ------> FMC_D18
  990. PE7 ------> FMC_D4
  991. PE10 ------> FMC_D7
  992. PE12 ------> FMC_D9
  993. PE15 ------> FMC_D12
  994. PE13 ------> FMC_D10
  995. */
  996. HAL_GPIO_DeInit(GPIOE, GPIO_PIN_1|GPIO_PIN_0|GPIO_PIN_8|GPIO_PIN_9
  997. |GPIO_PIN_11|GPIO_PIN_14|GPIO_PIN_7|GPIO_PIN_10
  998. |GPIO_PIN_12|GPIO_PIN_15|GPIO_PIN_13);
  999. HAL_GPIO_DeInit(GPIOG, GPIO_PIN_15|GPIO_PIN_8|GPIO_PIN_1|GPIO_PIN_0
  1000. |GPIO_PIN_5|GPIO_PIN_4);
  1001. HAL_GPIO_DeInit(GPIOD, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_15|GPIO_PIN_10
  1002. |GPIO_PIN_14|GPIO_PIN_9|GPIO_PIN_8);
  1003. HAL_GPIO_DeInit(GPIOI, GPIO_PIN_4|GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_5
  1004. |GPIO_PIN_7|GPIO_PIN_10|GPIO_PIN_6|GPIO_PIN_1
  1005. |GPIO_PIN_9|GPIO_PIN_0);
  1006. HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
  1007. |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_15
  1008. |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_11);
  1009. HAL_GPIO_DeInit(GPIOH, GPIO_PIN_15|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_3
  1010. |GPIO_PIN_2|GPIO_PIN_12|GPIO_PIN_9|GPIO_PIN_11
  1011. |GPIO_PIN_8|GPIO_PIN_10);
  1012. HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0);
  1013. /* USER CODE BEGIN FMC_MspDeInit 1 */
  1014. /* USER CODE END FMC_MspDeInit 1 */
  1015. }
  1016. void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef* hsdram){
  1017. /* USER CODE BEGIN SDRAM_MspDeInit 0 */
  1018. /* USER CODE END SDRAM_MspDeInit 0 */
  1019. HAL_FMC_MspDeInit();
  1020. /* USER CODE BEGIN SDRAM_MspDeInit 1 */
  1021. /* USER CODE END SDRAM_MspDeInit 1 */
  1022. }
  1023. /* USER CODE BEGIN 1 */
  1024. /* USER CODE END 1 */
  1025. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/