stm32f4xx_hal_msp.c 31 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141
  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. ** This notice applies to any and all portions of this file
  9. * that are not between comment pairs USER CODE BEGIN and
  10. * USER CODE END. Other portions of this file, whether
  11. * inserted by the user or by software development tools
  12. * are owned by their respective copyright owners.
  13. *
  14. * COPYRIGHT(c) 2018 STMicroelectronics
  15. *
  16. * Redistribution and use in source and binary forms, with or without modification,
  17. * are permitted provided that the following conditions are met:
  18. * 1. Redistributions of source code must retain the above copyright notice,
  19. * this list of conditions and the following disclaimer.
  20. * 2. Redistributions in binary form must reproduce the above copyright notice,
  21. * this list of conditions and the following disclaimer in the documentation
  22. * and/or other materials provided with the distribution.
  23. * 3. Neither the name of STMicroelectronics nor the names of its contributors
  24. * may be used to endorse or promote products derived from this software
  25. * without specific prior written permission.
  26. *
  27. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  28. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  29. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  30. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  31. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  32. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  33. * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  34. * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  35. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  36. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  37. *
  38. ******************************************************************************
  39. */
  40. /* USER CODE END Header */
  41. /* Includes ------------------------------------------------------------------*/
  42. #include "stm32f4xx.h"
  43. /* USER CODE BEGIN Includes */
  44. /* USER CODE END Includes */
  45. SD_HandleTypeDef hsd;
  46. DMA_HandleTypeDef hdma_sdio_rx;
  47. DMA_HandleTypeDef hdma_sdio_tx;
  48. void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
  49. /**
  50. * Initializes the Global MSP.
  51. */
  52. void HAL_MspInit(void)
  53. {
  54. /* USER CODE BEGIN MspInit 0 */
  55. /* USER CODE END MspInit 0 */
  56. __HAL_RCC_SYSCFG_CLK_ENABLE();
  57. __HAL_RCC_PWR_CLK_ENABLE();
  58. __HAL_RCC_GPIOB_CLK_ENABLE();
  59. __HAL_RCC_GPIOD_CLK_ENABLE();
  60. __HAL_RCC_GPIOE_CLK_ENABLE();
  61. /* System interrupt init*/
  62. /* USER CODE BEGIN MspInit 1 */
  63. /* USER CODE END MspInit 1 */
  64. }
  65. /**
  66. * @brief ETH MSP Initialization
  67. * This function configures the hardware resources used in this example
  68. * @param heth: ETH handle pointer
  69. * @retval None
  70. */
  71. void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
  72. {
  73. GPIO_InitTypeDef GPIO_InitStruct = {0};
  74. if(heth->Instance==ETH)
  75. {
  76. /* USER CODE BEGIN ETH_MspInit 0 */
  77. /* USER CODE END ETH_MspInit 0 */
  78. /* Peripheral clock enable */
  79. __HAL_RCC_ETH_CLK_ENABLE();
  80. __HAL_RCC_GPIOC_CLK_ENABLE();
  81. __HAL_RCC_GPIOA_CLK_ENABLE();
  82. __HAL_RCC_GPIOG_CLK_ENABLE();
  83. /**ETH GPIO Configuration
  84. PC1 ------> ETH_MDC
  85. PA1 ------> ETH_REF_CLK
  86. PA2 ------> ETH_MDIO
  87. PA7 ------> ETH_CRS_DV
  88. PC4 ------> ETH_RXD0
  89. PC5 ------> ETH_RXD1
  90. PG11 ------> ETH_TX_EN
  91. PG13 ------> ETH_TXD0
  92. PG14 ------> ETH_TXD1
  93. */
  94. GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5;
  95. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  96. GPIO_InitStruct.Pull = GPIO_NOPULL;
  97. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  98. GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
  99. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  100. GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7;
  101. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  102. GPIO_InitStruct.Pull = GPIO_NOPULL;
  103. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  104. GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
  105. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  106. GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_13|GPIO_PIN_14;
  107. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  108. GPIO_InitStruct.Pull = GPIO_NOPULL;
  109. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  110. GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
  111. HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
  112. /* USER CODE BEGIN ETH_MspInit 1 */
  113. /* USER CODE END ETH_MspInit 1 */
  114. }
  115. }
  116. /**
  117. * @brief ETH MSP De-Initialization
  118. * This function freeze the hardware resources used in this example
  119. * @param heth: ETH handle pointer
  120. * @retval None
  121. */
  122. void HAL_ETH_MspDeInit(ETH_HandleTypeDef* heth)
  123. {
  124. if(heth->Instance==ETH)
  125. {
  126. /* USER CODE BEGIN ETH_MspDeInit 0 */
  127. /* USER CODE END ETH_MspDeInit 0 */
  128. /* Peripheral clock disable */
  129. __HAL_RCC_ETH_CLK_DISABLE();
  130. /**ETH GPIO Configuration
  131. PC1 ------> ETH_MDC
  132. PA1 ------> ETH_REF_CLK
  133. PA2 ------> ETH_MDIO
  134. PA7 ------> ETH_CRS_DV
  135. PC4 ------> ETH_RXD0
  136. PC5 ------> ETH_RXD1
  137. PG11 ------> ETH_TX_EN
  138. PG13 ------> ETH_TXD0
  139. PG14 ------> ETH_TXD1
  140. */
  141. HAL_GPIO_DeInit(GPIOC, GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5);
  142. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7);
  143. HAL_GPIO_DeInit(GPIOG, GPIO_PIN_11|GPIO_PIN_13|GPIO_PIN_14);
  144. /* USER CODE BEGIN ETH_MspDeInit 1 */
  145. /* USER CODE END ETH_MspDeInit 1 */
  146. }
  147. }
  148. /**
  149. * @brief RTC MSP Initialization
  150. * This function configures the hardware resources used in this example
  151. * @param hrtc: RTC handle pointer
  152. * @retval None
  153. */
  154. void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
  155. {
  156. if(hrtc->Instance==RTC)
  157. {
  158. /* USER CODE BEGIN RTC_MspInit 0 */
  159. /* USER CODE END RTC_MspInit 0 */
  160. /* Peripheral clock enable */
  161. __HAL_RCC_RTC_ENABLE();
  162. /* USER CODE BEGIN RTC_MspInit 1 */
  163. /* USER CODE END RTC_MspInit 1 */
  164. }
  165. }
  166. /**
  167. * @brief RTC MSP De-Initialization
  168. * This function freeze the hardware resources used in this example
  169. * @param hrtc: RTC handle pointer
  170. * @retval None
  171. */
  172. void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
  173. {
  174. if(hrtc->Instance==RTC)
  175. {
  176. /* USER CODE BEGIN RTC_MspDeInit 0 */
  177. /* USER CODE END RTC_MspDeInit 0 */
  178. /* Peripheral clock disable */
  179. __HAL_RCC_RTC_DISABLE();
  180. /* USER CODE BEGIN RTC_MspDeInit 1 */
  181. /* USER CODE END RTC_MspDeInit 1 */
  182. }
  183. }
  184. /**
  185. * @brief SD MSP Initialization
  186. * This function configures the hardware resources used in this example
  187. * @param hsd: SD handle pointer
  188. * @retval None
  189. */
  190. void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
  191. {
  192. GPIO_InitTypeDef GPIO_InitStruct = {0};
  193. if(hsd->Instance==SDIO)
  194. {
  195. /* USER CODE BEGIN SDIO_MspInit 0 */
  196. /* USER CODE END SDIO_MspInit 0 */
  197. /* Peripheral clock enable */
  198. __HAL_RCC_SDIO_CLK_ENABLE();
  199. __HAL_RCC_GPIOC_CLK_ENABLE();
  200. __HAL_RCC_GPIOD_CLK_ENABLE();
  201. /**SDIO GPIO Configuration
  202. PC8 ------> SDIO_D0
  203. PC9 ------> SDIO_D1
  204. PC10 ------> SDIO_D2
  205. PC11 ------> SDIO_D3
  206. PC12 ------> SDIO_CK
  207. PD2 ------> SDIO_CMD
  208. */
  209. GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
  210. |GPIO_PIN_12;
  211. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  212. GPIO_InitStruct.Pull = GPIO_PULLUP;
  213. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  214. GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
  215. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  216. GPIO_InitStruct.Pin = GPIO_PIN_2;
  217. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  218. GPIO_InitStruct.Pull = GPIO_PULLUP;
  219. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  220. GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
  221. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  222. /* SDIO DMA Init */
  223. /* SDIO_RX Init */
  224. hdma_sdio_rx.Instance = DMA2_Stream3;
  225. hdma_sdio_rx.Init.Channel = DMA_CHANNEL_4;
  226. hdma_sdio_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
  227. hdma_sdio_rx.Init.PeriphInc = DMA_PINC_DISABLE;
  228. hdma_sdio_rx.Init.MemInc = DMA_MINC_ENABLE;
  229. hdma_sdio_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
  230. hdma_sdio_rx.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
  231. hdma_sdio_rx.Init.Mode = DMA_PFCTRL;
  232. hdma_sdio_rx.Init.Priority = DMA_PRIORITY_LOW;
  233. hdma_sdio_rx.Init.FIFOMode = DMA_FIFOMODE_ENABLE;
  234. hdma_sdio_rx.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
  235. hdma_sdio_rx.Init.MemBurst = DMA_MBURST_INC4;
  236. hdma_sdio_rx.Init.PeriphBurst = DMA_PBURST_INC4;
  237. if (HAL_DMA_Init(&hdma_sdio_rx) != HAL_OK)
  238. {
  239. //Error_Handler();
  240. return;
  241. }
  242. __HAL_LINKDMA(hsd,hdmarx,hdma_sdio_rx);
  243. /* SDIO_TX Init */
  244. hdma_sdio_tx.Instance = DMA2_Stream6;
  245. hdma_sdio_tx.Init.Channel = DMA_CHANNEL_4;
  246. hdma_sdio_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
  247. hdma_sdio_tx.Init.PeriphInc = DMA_PINC_DISABLE;
  248. hdma_sdio_tx.Init.MemInc = DMA_MINC_ENABLE;
  249. hdma_sdio_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
  250. hdma_sdio_tx.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
  251. hdma_sdio_tx.Init.Mode = DMA_PFCTRL;
  252. hdma_sdio_tx.Init.Priority = DMA_PRIORITY_LOW;
  253. hdma_sdio_tx.Init.FIFOMode = DMA_FIFOMODE_ENABLE;
  254. hdma_sdio_tx.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
  255. hdma_sdio_tx.Init.MemBurst = DMA_MBURST_INC4;
  256. hdma_sdio_tx.Init.PeriphBurst = DMA_PBURST_INC4;
  257. if (HAL_DMA_Init(&hdma_sdio_tx) != HAL_OK)
  258. {
  259. //Error_Handler();
  260. return;
  261. }
  262. __HAL_LINKDMA(hsd,hdmatx,hdma_sdio_tx);
  263. /* SDIO interrupt Init */
  264. HAL_NVIC_SetPriority(SDIO_IRQn, 6, 0);
  265. HAL_NVIC_EnableIRQ(SDIO_IRQn);
  266. /* USER CODE BEGIN SDIO_MspInit 1 */
  267. /* USER CODE END SDIO_MspInit 1 */
  268. }
  269. }
  270. /**
  271. * @brief SD MSP De-Initialization
  272. * This function freeze the hardware resources used in this example
  273. * @param hsd: SD handle pointer
  274. * @retval None
  275. */
  276. void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
  277. {
  278. if(hsd->Instance==SDIO)
  279. {
  280. /* USER CODE BEGIN SDIO_MspDeInit 0 */
  281. /* USER CODE END SDIO_MspDeInit 0 */
  282. /* Peripheral clock disable */
  283. __HAL_RCC_SDIO_CLK_DISABLE();
  284. /**SDIO GPIO Configuration
  285. PC8 ------> SDIO_D0
  286. PC9 ------> SDIO_D1
  287. PC10 ------> SDIO_D2
  288. PC11 ------> SDIO_D3
  289. PC12 ------> SDIO_CK
  290. PD2 ------> SDIO_CMD
  291. */
  292. HAL_GPIO_DeInit(GPIOC, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
  293. |GPIO_PIN_12);
  294. HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
  295. /* SDIO DMA DeInit */
  296. HAL_DMA_DeInit(hsd->hdmarx);
  297. HAL_DMA_DeInit(hsd->hdmatx);
  298. /* SDIO interrupt DeInit */
  299. HAL_NVIC_DisableIRQ(SDIO_IRQn);
  300. /* USER CODE BEGIN SDIO_MspDeInit 1 */
  301. /* USER CODE END SDIO_MspDeInit 1 */
  302. }
  303. }
  304. /**
  305. * @brief SPI MSP Initialization
  306. * This function configures the hardware resources used in this example
  307. * @param hspi: SPI handle pointer
  308. * @retval None
  309. */
  310. void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
  311. {
  312. GPIO_InitTypeDef GPIO_InitStruct = {0};
  313. if(hspi->Instance==SPI1)
  314. {
  315. /* USER CODE BEGIN SPI1_MspInit 0 */
  316. /* USER CODE END SPI1_MspInit 0 */
  317. /* Peripheral clock enable */
  318. __HAL_RCC_SPI1_CLK_ENABLE();
  319. __HAL_RCC_GPIOB_CLK_ENABLE();
  320. /**SPI1 GPIO Configuration
  321. PB3 ------> SPI1_SCK
  322. PB4 ------> SPI1_MISO
  323. PB5 ------> SPI1_MOSI
  324. */
  325. GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5;
  326. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  327. GPIO_InitStruct.Pull = GPIO_NOPULL;
  328. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  329. GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
  330. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  331. /* SPI1 interrupt Init */
  332. HAL_NVIC_SetPriority(SPI1_IRQn, 6, 0);
  333. HAL_NVIC_EnableIRQ(SPI1_IRQn);
  334. /* USER CODE BEGIN SPI1_MspInit 1 */
  335. /* USER CODE END SPI1_MspInit 1 */
  336. }
  337. else if(hspi->Instance==SPI2)
  338. {
  339. /* USER CODE BEGIN SPI2_MspInit 0 */
  340. /* USER CODE END SPI2_MspInit 0 */
  341. /* Peripheral clock enable */
  342. __HAL_RCC_SPI2_CLK_ENABLE();
  343. __HAL_RCC_GPIOC_CLK_ENABLE();
  344. __HAL_RCC_GPIOB_CLK_ENABLE();
  345. /**SPI2 GPIO Configuration
  346. PB15 ------> SPI2_MOSI
  347. PB13 ------> SPI2_SCK
  348. */
  349. GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_15;
  350. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  351. GPIO_InitStruct.Pull = GPIO_NOPULL;
  352. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  353. GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
  354. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  355. /* USER CODE BEGIN SPI2_MspInit 1 */
  356. /* USER CODE END SPI2_MspInit 1 */
  357. }
  358. }
  359. /**
  360. * @brief SPI MSP De-Initialization
  361. * This function freeze the hardware resources used in this example
  362. * @param hspi: SPI handle pointer
  363. * @retval None
  364. */
  365. void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
  366. {
  367. if(hspi->Instance==SPI1)
  368. {
  369. /* USER CODE BEGIN SPI1_MspDeInit 0 */
  370. /* USER CODE END SPI1_MspDeInit 0 */
  371. /* Peripheral clock disable */
  372. __HAL_RCC_SPI1_CLK_DISABLE();
  373. /**SPI1 GPIO Configuration
  374. PB3 ------> SPI1_SCK
  375. PB4 ------> SPI1_MISO
  376. PB5 ------> SPI1_MOSI
  377. */
  378. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5);
  379. /* SPI1 interrupt DeInit */
  380. HAL_NVIC_DisableIRQ(SPI1_IRQn);
  381. /* USER CODE BEGIN SPI1_MspDeInit 1 */
  382. /* USER CODE END SPI1_MspDeInit 1 */
  383. }
  384. else if(hspi->Instance==SPI2)
  385. {
  386. /* USER CODE BEGIN SPI2_MspDeInit 0 */
  387. /* USER CODE END SPI2_MspDeInit 0 */
  388. /* Peripheral clock disable */
  389. __HAL_RCC_SPI2_CLK_DISABLE();
  390. /**SPI2 GPIO Configuration
  391. PB15 ------> SPI2_MOSI
  392. PB13 ------> SPI2_SCK
  393. */
  394. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_15);
  395. /* USER CODE BEGIN SPI2_MspDeInit 1 */
  396. /* USER CODE END SPI2_MspDeInit 1 */
  397. }
  398. }
  399. /**
  400. * @brief TIM_Base MSP Initialization
  401. * This function configures the hardware resources used in this example
  402. * @param htim_base: TIM_Base handle pointer
  403. * @retval None
  404. */
  405. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
  406. {
  407. if(htim_base->Instance==TIM2)
  408. {
  409. /* USER CODE BEGIN TIM2_MspInit 0 */
  410. /* USER CODE END TIM2_MspInit 0 */
  411. /* Peripheral clock enable */
  412. __HAL_RCC_TIM2_CLK_ENABLE();
  413. /* USER CODE BEGIN TIM2_MspInit 1 */
  414. /* USER CODE END TIM2_MspInit 1 */
  415. }
  416. else if(htim_base->Instance==TIM11)
  417. {
  418. /* USER CODE BEGIN TIM11_MspInit 0 */
  419. /* USER CODE END TIM11_MspInit 0 */
  420. /* Peripheral clock enable */
  421. __HAL_RCC_TIM11_CLK_ENABLE();
  422. /* USER CODE BEGIN TIM11_MspInit 1 */
  423. /* USER CODE END TIM11_MspInit 1 */
  424. }
  425. else if(htim_base->Instance==TIM13)
  426. {
  427. /* USER CODE BEGIN TIM13_MspInit 0 */
  428. /* USER CODE END TIM13_MspInit 0 */
  429. /* Peripheral clock enable */
  430. __HAL_RCC_TIM13_CLK_ENABLE();
  431. /* USER CODE BEGIN TIM13_MspInit 1 */
  432. /* USER CODE END TIM13_MspInit 1 */
  433. }
  434. else if(htim_base->Instance==TIM14)
  435. {
  436. /* USER CODE BEGIN TIM14_MspInit 0 */
  437. /* USER CODE END TIM14_MspInit 0 */
  438. /* Peripheral clock enable */
  439. __HAL_RCC_TIM14_CLK_ENABLE();
  440. /* USER CODE BEGIN TIM14_MspInit 1 */
  441. /* USER CODE END TIM14_MspInit 1 */
  442. }
  443. }
  444. /**
  445. * @brief TIM_Encoder MSP Initialization
  446. * This function configures the hardware resources used in this example
  447. * @param htim_encoder: TIM_Encoder handle pointer
  448. * @retval None
  449. */
  450. void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* htim_encoder)
  451. {
  452. GPIO_InitTypeDef GPIO_InitStruct = {0};
  453. if(htim_encoder->Instance==TIM4)
  454. {
  455. /* USER CODE BEGIN TIM4_MspInit 0 */
  456. /* USER CODE END TIM4_MspInit 0 */
  457. /* Peripheral clock enable */
  458. __HAL_RCC_TIM4_CLK_ENABLE();
  459. __HAL_RCC_GPIOB_CLK_ENABLE();
  460. /**TIM4 GPIO Configuration
  461. PB6 ------> TIM4_CH1
  462. PB7 ------> TIM4_CH2
  463. */
  464. GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
  465. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  466. GPIO_InitStruct.Pull = GPIO_NOPULL;
  467. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  468. GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
  469. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  470. /* USER CODE BEGIN TIM4_MspInit 1 */
  471. /* USER CODE END TIM4_MspInit 1 */
  472. }
  473. }
  474. void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
  475. {
  476. GPIO_InitTypeDef GPIO_InitStruct = {0};
  477. if(htim->Instance==TIM2)
  478. {
  479. /* USER CODE BEGIN TIM2_MspPostInit 0 */
  480. /* USER CODE END TIM2_MspPostInit 0 */
  481. __HAL_RCC_GPIOA_CLK_ENABLE();
  482. /**TIM2 GPIO Configuration
  483. PA3 ------> TIM2_CH4
  484. */
  485. GPIO_InitStruct.Pin = GPIO_PIN_3;
  486. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  487. GPIO_InitStruct.Pull = GPIO_NOPULL;
  488. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  489. GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
  490. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  491. /* USER CODE BEGIN TIM2_MspPostInit 1 */
  492. /* USER CODE END TIM2_MspPostInit 1 */
  493. }
  494. }
  495. /**
  496. * @brief TIM_Base MSP De-Initialization
  497. * This function freeze the hardware resources used in this example
  498. * @param htim_base: TIM_Base handle pointer
  499. * @retval None
  500. */
  501. void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
  502. {
  503. if(htim_base->Instance==TIM2)
  504. {
  505. /* USER CODE BEGIN TIM2_MspDeInit 0 */
  506. /* USER CODE END TIM2_MspDeInit 0 */
  507. /* Peripheral clock disable */
  508. __HAL_RCC_TIM2_CLK_DISABLE();
  509. /* USER CODE BEGIN TIM2_MspDeInit 1 */
  510. /* USER CODE END TIM2_MspDeInit 1 */
  511. }
  512. else if(htim_base->Instance==TIM11)
  513. {
  514. /* USER CODE BEGIN TIM11_MspDeInit 0 */
  515. /* USER CODE END TIM11_MspDeInit 0 */
  516. /* Peripheral clock disable */
  517. __HAL_RCC_TIM11_CLK_DISABLE();
  518. /* USER CODE BEGIN TIM11_MspDeInit 1 */
  519. /* USER CODE END TIM11_MspDeInit 1 */
  520. }
  521. else if(htim_base->Instance==TIM13)
  522. {
  523. /* USER CODE BEGIN TIM13_MspDeInit 0 */
  524. /* USER CODE END TIM13_MspDeInit 0 */
  525. /* Peripheral clock disable */
  526. __HAL_RCC_TIM13_CLK_DISABLE();
  527. /* USER CODE BEGIN TIM13_MspDeInit 1 */
  528. /* USER CODE END TIM13_MspDeInit 1 */
  529. }
  530. else if(htim_base->Instance==TIM14)
  531. {
  532. /* USER CODE BEGIN TIM14_MspDeInit 0 */
  533. /* USER CODE END TIM14_MspDeInit 0 */
  534. /* Peripheral clock disable */
  535. __HAL_RCC_TIM14_CLK_DISABLE();
  536. /* USER CODE BEGIN TIM14_MspDeInit 1 */
  537. /* USER CODE END TIM14_MspDeInit 1 */
  538. }
  539. }
  540. /**
  541. * @brief TIM_Encoder MSP De-Initialization
  542. * This function freeze the hardware resources used in this example
  543. * @param htim_encoder: TIM_Encoder handle pointer
  544. * @retval None
  545. */
  546. void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef* htim_encoder)
  547. {
  548. if(htim_encoder->Instance==TIM4)
  549. {
  550. /* USER CODE BEGIN TIM4_MspDeInit 0 */
  551. /* USER CODE END TIM4_MspDeInit 0 */
  552. /* Peripheral clock disable */
  553. __HAL_RCC_TIM4_CLK_DISABLE();
  554. /**TIM4 GPIO Configuration
  555. PB6 ------> TIM4_CH1
  556. PB7 ------> TIM4_CH2
  557. */
  558. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6|GPIO_PIN_7);
  559. /* USER CODE BEGIN TIM4_MspDeInit 1 */
  560. /* USER CODE END TIM4_MspDeInit 1 */
  561. }
  562. }
  563. /**
  564. * @brief UART MSP Initialization
  565. * This function configures the hardware resources used in this example
  566. * @param huart: UART handle pointer
  567. * @retval None
  568. */
  569. void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  570. {
  571. GPIO_InitTypeDef GPIO_InitStruct = {0};
  572. if(huart->Instance==USART1)
  573. {
  574. /* USER CODE BEGIN USART1_MspInit 0 */
  575. /* USER CODE END USART1_MspInit 0 */
  576. /* Peripheral clock enable */
  577. __HAL_RCC_USART1_CLK_ENABLE();
  578. __HAL_RCC_GPIOA_CLK_ENABLE();
  579. /**USART1 GPIO Configuration
  580. PA9 ------> USART1_TX
  581. PA10 ------> USART1_RX
  582. */
  583. GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
  584. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  585. GPIO_InitStruct.Pull = GPIO_PULLUP;
  586. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  587. GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
  588. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  589. /* USART1 interrupt Init */
  590. HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
  591. HAL_NVIC_EnableIRQ(USART1_IRQn);
  592. /* USER CODE BEGIN USART1_MspInit 1 */
  593. /* USER CODE END USART1_MspInit 1 */
  594. }
  595. else if(huart->Instance==USART2)
  596. {
  597. /* USER CODE BEGIN USART2_MspInit 0 */
  598. /* USER CODE END USART2_MspInit 0 */
  599. /* Peripheral clock enable */
  600. __HAL_RCC_USART2_CLK_ENABLE();
  601. __HAL_RCC_GPIOD_CLK_ENABLE();
  602. /**USART2 GPIO Configuration
  603. PA2 ------> USART2_TX
  604. PA3 ------> USART2_RX
  605. */
  606. GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6;
  607. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  608. GPIO_InitStruct.Pull = GPIO_NOPULL;
  609. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  610. GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
  611. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  612. /* USER CODE BEGIN USART2_MspInit 1 */
  613. /* USER CODE END USART2_MspInit 1 */
  614. }
  615. else if(huart->Instance==USART3)
  616. {
  617. /* USER CODE BEGIN USART3_MspInit 0 */
  618. /* USER CODE END USART3_MspInit 0 */
  619. /* Peripheral clock enable */
  620. __HAL_RCC_USART3_CLK_ENABLE();
  621. __HAL_RCC_GPIOB_CLK_ENABLE();
  622. /**USART3 GPIO Configuration
  623. PB10 ------> USART3_TX
  624. PB11 ------> USART3_RX
  625. */
  626. GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
  627. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  628. GPIO_InitStruct.Pull = GPIO_PULLUP;
  629. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  630. GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
  631. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  632. /* USER CODE BEGIN USART3_MspInit 1 */
  633. /* USER CODE END USART3_MspInit 1 */
  634. }
  635. else if(huart->Instance==USART6)
  636. {
  637. /* USER CODE BEGIN USART6_MspInit 0 */
  638. /* USER CODE END USART6_MspInit 0 */
  639. /* Peripheral clock enable */
  640. __HAL_RCC_USART6_CLK_ENABLE();
  641. __HAL_RCC_GPIOC_CLK_ENABLE();
  642. /**USART6 GPIO Configuration
  643. PC6 ------> USART6_TX
  644. PC7 ------> USART6_RX
  645. */
  646. GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
  647. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  648. GPIO_InitStruct.Pull = GPIO_NOPULL;
  649. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  650. GPIO_InitStruct.Alternate = GPIO_AF8_USART6;
  651. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  652. /* USER CODE BEGIN USART6_MspInit 1 */
  653. /* USER CODE END USART6_MspInit 1 */
  654. }
  655. }
  656. /**
  657. * @brief UART MSP De-Initialization
  658. * This function freeze the hardware resources used in this example
  659. * @param huart: UART handle pointer
  660. * @retval None
  661. */
  662. void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
  663. {
  664. if(huart->Instance==USART1)
  665. {
  666. /* USER CODE BEGIN USART1_MspDeInit 0 */
  667. /* USER CODE END USART1_MspDeInit 0 */
  668. /* Peripheral clock disable */
  669. __HAL_RCC_USART1_CLK_DISABLE();
  670. /**USART1 GPIO Configuration
  671. PA9 ------> USART1_TX
  672. PA10 ------> USART1_RX
  673. */
  674. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
  675. /* USART1 interrupt DeInit */
  676. HAL_NVIC_DisableIRQ(USART1_IRQn);
  677. /* USER CODE BEGIN USART1_MspDeInit 1 */
  678. /* USER CODE END USART1_MspDeInit 1 */
  679. }
  680. else if(huart->Instance==USART2)
  681. {
  682. /* USER CODE BEGIN USART2_MspDeInit 0 */
  683. /* USER CODE END USART2_MspDeInit 0 */
  684. /* Peripheral clock disable */
  685. __HAL_RCC_USART2_CLK_DISABLE();
  686. /**USART2 GPIO Configuration
  687. PA2 ------> USART2_TX
  688. PA3 ------> USART2_RX
  689. */
  690. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
  691. /* USER CODE BEGIN USART2_MspDeInit 1 */
  692. /* USER CODE END USART2_MspDeInit 1 */
  693. }
  694. else if(huart->Instance==USART3)
  695. {
  696. /* USER CODE BEGIN USART3_MspDeInit 0 */
  697. /* USER CODE END USART3_MspDeInit 0 */
  698. /* Peripheral clock disable */
  699. __HAL_RCC_USART3_CLK_DISABLE();
  700. /**USART3 GPIO Configuration
  701. PB10 ------> USART3_TX
  702. PB11 ------> USART3_RX
  703. */
  704. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11);
  705. /* USER CODE BEGIN USART3_MspDeInit 1 */
  706. /* USER CODE END USART3_MspDeInit 1 */
  707. }
  708. else if(huart->Instance==USART6)
  709. {
  710. /* USER CODE BEGIN USART6_MspDeInit 0 */
  711. /* USER CODE END USART6_MspDeInit 0 */
  712. /* Peripheral clock disable */
  713. __HAL_RCC_USART6_CLK_DISABLE();
  714. /**USART6 GPIO Configuration
  715. PC6 ------> USART6_TX
  716. PC7 ------> USART6_RX
  717. */
  718. HAL_GPIO_DeInit(GPIOC, GPIO_PIN_6|GPIO_PIN_7);
  719. /* USER CODE BEGIN USART6_MspDeInit 1 */
  720. /* USER CODE END USART6_MspDeInit 1 */
  721. }
  722. }
  723. /**
  724. * @brief PCD MSP Initialization
  725. * This function configures the hardware resources used in this example
  726. * @param hpcd: PCD handle pointer
  727. * @retval None
  728. */
  729. void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)
  730. {
  731. GPIO_InitTypeDef GPIO_InitStruct = {0};
  732. if(hpcd->Instance==USB_OTG_FS)
  733. {
  734. /* USER CODE BEGIN USB_OTG_FS_MspInit 0 */
  735. /* USER CODE END USB_OTG_FS_MspInit 0 */
  736. __HAL_RCC_GPIOA_CLK_ENABLE();
  737. /**USB_OTG_FS GPIO Configuration
  738. PA11 ------> USB_OTG_FS_DM
  739. PA12 ------> USB_OTG_FS_DP
  740. */
  741. GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12;
  742. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  743. GPIO_InitStruct.Pull = GPIO_NOPULL;
  744. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  745. GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
  746. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  747. /* Peripheral clock enable */
  748. __HAL_RCC_USB_OTG_FS_CLK_ENABLE();
  749. /* USB_OTG_FS interrupt Init */
  750. HAL_NVIC_SetPriority(OTG_FS_IRQn, 0, 0);
  751. HAL_NVIC_EnableIRQ(OTG_FS_IRQn);
  752. /* USER CODE BEGIN USB_OTG_FS_MspInit 1 */
  753. /* USER CODE END USB_OTG_FS_MspInit 1 */
  754. }
  755. }
  756. /**
  757. * @brief PCD MSP De-Initialization
  758. * This function freeze the hardware resources used in this example
  759. * @param hpcd: PCD handle pointer
  760. * @retval None
  761. */
  762. void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd)
  763. {
  764. if(hpcd->Instance==USB_OTG_FS)
  765. {
  766. /* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */
  767. /* USER CODE END USB_OTG_FS_MspDeInit 0 */
  768. /* Peripheral clock disable */
  769. __HAL_RCC_USB_OTG_FS_CLK_DISABLE();
  770. /**USB_OTG_FS GPIO Configuration
  771. PA11 ------> USB_OTG_FS_DM
  772. PA12 ------> USB_OTG_FS_DP
  773. */
  774. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12);
  775. /* USB_OTG_FS interrupt DeInit */
  776. HAL_NVIC_DisableIRQ(OTG_FS_IRQn);
  777. /* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */
  778. /* USER CODE END USB_OTG_FS_MspDeInit 1 */
  779. }
  780. }
  781. static uint32_t FSMC_Initialized = 0;
  782. static void HAL_FSMC_MspInit(void){
  783. /* USER CODE BEGIN FSMC_MspInit 0 */
  784. /* USER CODE END FSMC_MspInit 0 */
  785. GPIO_InitTypeDef GPIO_InitStruct ={0};
  786. if (FSMC_Initialized) {
  787. return;
  788. }
  789. FSMC_Initialized = 1;
  790. /* Peripheral clock enable */
  791. __HAL_RCC_FSMC_CLK_ENABLE();
  792. /** FSMC GPIO Configuration
  793. PF0 ------> FSMC_A0
  794. PF1 ------> FSMC_A1
  795. PF2 ------> FSMC_A2
  796. PF3 ------> FSMC_A3
  797. PF4 ------> FSMC_A4
  798. PF5 ------> FSMC_A5
  799. PF12 ------> FSMC_A6
  800. PF13 ------> FSMC_A7
  801. PF14 ------> FSMC_A8
  802. PF15 ------> FSMC_A9
  803. PG0 ------> FSMC_A10
  804. PG1 ------> FSMC_A11
  805. PE7 ------> FSMC_D4
  806. PE8 ------> FSMC_D5
  807. PE9 ------> FSMC_D6
  808. PE10 ------> FSMC_D7
  809. PE11 ------> FSMC_D8
  810. PE12 ------> FSMC_D9
  811. PE13 ------> FSMC_D10
  812. PE14 ------> FSMC_D11
  813. PE15 ------> FSMC_D12
  814. PD8 ------> FSMC_D13
  815. PD9 ------> FSMC_D14
  816. PD10 ------> FSMC_D15
  817. PD11 ------> FSMC_A16
  818. PD12 ------> FSMC_A17
  819. PD13 ------> FSMC_A18
  820. PD14 ------> FSMC_D0
  821. PD15 ------> FSMC_D1
  822. PG2 ------> FSMC_A12
  823. PG3 ------> FSMC_A13
  824. PG4 ------> FSMC_A14
  825. PG5 ------> FSMC_A15
  826. PD0 ------> FSMC_D2
  827. PD1 ------> FSMC_D3
  828. PD4 ------> FSMC_NOE
  829. PD5 ------> FSMC_NWE
  830. PG10 ------> FSMC_NE3
  831. PG12 ------> FSMC_NE4
  832. PE0 ------> FSMC_NBL0
  833. PE1 ------> FSMC_NBL1
  834. */
  835. GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
  836. |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_13
  837. |GPIO_PIN_14|GPIO_PIN_15;
  838. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  839. GPIO_InitStruct.Pull = GPIO_NOPULL;
  840. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  841. GPIO_InitStruct.Alternate = GPIO_AF12_FSMC;
  842. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  843. GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
  844. |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_10|GPIO_PIN_12;
  845. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  846. GPIO_InitStruct.Pull = GPIO_NOPULL;
  847. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  848. GPIO_InitStruct.Alternate = GPIO_AF12_FSMC;
  849. HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
  850. GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
  851. |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
  852. |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1;
  853. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  854. GPIO_InitStruct.Pull = GPIO_NOPULL;
  855. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  856. GPIO_InitStruct.Alternate = GPIO_AF12_FSMC;
  857. HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
  858. GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
  859. |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15
  860. |GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5;
  861. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  862. GPIO_InitStruct.Pull = GPIO_NOPULL;
  863. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  864. GPIO_InitStruct.Alternate = GPIO_AF12_FSMC;
  865. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  866. /* USER CODE BEGIN FSMC_MspInit 1 */
  867. /* USER CODE END FSMC_MspInit 1 */
  868. }
  869. void HAL_SRAM_MspInit(SRAM_HandleTypeDef* hsram){
  870. /* USER CODE BEGIN SRAM_MspInit 0 */
  871. /* USER CODE END SRAM_MspInit 0 */
  872. HAL_FSMC_MspInit();
  873. /* USER CODE BEGIN SRAM_MspInit 1 */
  874. /* USER CODE END SRAM_MspInit 1 */
  875. }
  876. static uint32_t FSMC_DeInitialized = 0;
  877. static void HAL_FSMC_MspDeInit(void){
  878. /* USER CODE BEGIN FSMC_MspDeInit 0 */
  879. /* USER CODE END FSMC_MspDeInit 0 */
  880. if (FSMC_DeInitialized) {
  881. return;
  882. }
  883. FSMC_DeInitialized = 1;
  884. /* Peripheral clock enable */
  885. __HAL_RCC_FSMC_CLK_DISABLE();
  886. /** FSMC GPIO Configuration
  887. PF0 ------> FSMC_A0
  888. PF1 ------> FSMC_A1
  889. PF2 ------> FSMC_A2
  890. PF3 ------> FSMC_A3
  891. PF4 ------> FSMC_A4
  892. PF5 ------> FSMC_A5
  893. PF12 ------> FSMC_A6
  894. PF13 ------> FSMC_A7
  895. PF14 ------> FSMC_A8
  896. PF15 ------> FSMC_A9
  897. PG0 ------> FSMC_A10
  898. PG1 ------> FSMC_A11
  899. PE7 ------> FSMC_D4
  900. PE8 ------> FSMC_D5
  901. PE9 ------> FSMC_D6
  902. PE10 ------> FSMC_D7
  903. PE11 ------> FSMC_D8
  904. PE12 ------> FSMC_D9
  905. PE13 ------> FSMC_D10
  906. PE14 ------> FSMC_D11
  907. PE15 ------> FSMC_D12
  908. PD8 ------> FSMC_D13
  909. PD9 ------> FSMC_D14
  910. PD10 ------> FSMC_D15
  911. PD11 ------> FSMC_A16
  912. PD12 ------> FSMC_A17
  913. PD13 ------> FSMC_A18
  914. PD14 ------> FSMC_D0
  915. PD15 ------> FSMC_D1
  916. PG2 ------> FSMC_A12
  917. PG3 ------> FSMC_A13
  918. PG4 ------> FSMC_A14
  919. PG5 ------> FSMC_A15
  920. PD0 ------> FSMC_D2
  921. PD1 ------> FSMC_D3
  922. PD4 ------> FSMC_NOE
  923. PD5 ------> FSMC_NWE
  924. PG10 ------> FSMC_NE3
  925. PG12 ------> FSMC_NE4
  926. PE0 ------> FSMC_NBL0
  927. PE1 ------> FSMC_NBL1
  928. */
  929. HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
  930. |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_13
  931. |GPIO_PIN_14|GPIO_PIN_15);
  932. HAL_GPIO_DeInit(GPIOG, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
  933. |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_10|GPIO_PIN_12);
  934. HAL_GPIO_DeInit(GPIOE, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
  935. |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
  936. |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1);
  937. HAL_GPIO_DeInit(GPIOD, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
  938. |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15
  939. |GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5);
  940. /* USER CODE BEGIN FSMC_MspDeInit 1 */
  941. /* USER CODE END FSMC_MspDeInit 1 */
  942. }
  943. void HAL_SRAM_MspDeInit(SRAM_HandleTypeDef* hsram){
  944. /* USER CODE BEGIN SRAM_MspDeInit 0 */
  945. /* USER CODE END SRAM_MspDeInit 0 */
  946. HAL_FSMC_MspDeInit();
  947. /* USER CODE BEGIN SRAM_MspDeInit 1 */
  948. /* USER CODE END SRAM_MspDeInit 1 */
  949. }
  950. /* USER CODE BEGIN 1 */
  951. /* USER CODE END 1 */
  952. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/