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