stm32f4xx_hal_msp.c 21 KB

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