stm32f4xx_hal_msp.c 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812
  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 Ultimate Liberty license
  14. * SLA0044, the "License"; You may not use this file except in compliance with
  15. * the License. You may obtain a copy of the License at:
  16. * www.st.com/SLA0044
  17. *
  18. ******************************************************************************
  19. */
  20. /* USER CODE END Header */
  21. /* Includes ------------------------------------------------------------------*/
  22. #include "main.h"
  23. /* USER CODE BEGIN Includes */
  24. #include <drv_common.h>
  25. /* USER CODE END Includes */
  26. /* Private typedef -----------------------------------------------------------*/
  27. /* USER CODE BEGIN TD */
  28. /* USER CODE END TD */
  29. /* Private define ------------------------------------------------------------*/
  30. /* USER CODE BEGIN Define */
  31. /* USER CODE END Define */
  32. /* Private macro -------------------------------------------------------------*/
  33. /* USER CODE BEGIN Macro */
  34. /* USER CODE END Macro */
  35. /* Private variables ---------------------------------------------------------*/
  36. /* USER CODE BEGIN PV */
  37. /* USER CODE END PV */
  38. /* Private function prototypes -----------------------------------------------*/
  39. /* USER CODE BEGIN PFP */
  40. /* USER CODE END PFP */
  41. /* External functions --------------------------------------------------------*/
  42. /* USER CODE BEGIN ExternalFunctions */
  43. /* USER CODE END ExternalFunctions */
  44. /* USER CODE BEGIN 0 */
  45. /* USER CODE END 0 */
  46. /**
  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. /* PendSV_IRQn interrupt configuration */
  57. HAL_NVIC_SetPriority(PendSV_IRQn, 15, 0);
  58. /* USER CODE BEGIN MspInit 1 */
  59. /* USER CODE END MspInit 1 */
  60. }
  61. /**
  62. * @brief CRC MSP Initialization
  63. * This function configures the hardware resources used in this example
  64. * @param hcrc: CRC handle pointer
  65. * @retval None
  66. */
  67. void HAL_CRC_MspInit(CRC_HandleTypeDef* hcrc)
  68. {
  69. if(hcrc->Instance==CRC)
  70. {
  71. /* USER CODE BEGIN CRC_MspInit 0 */
  72. /* USER CODE END CRC_MspInit 0 */
  73. /* Peripheral clock enable */
  74. __HAL_RCC_CRC_CLK_ENABLE();
  75. /* USER CODE BEGIN CRC_MspInit 1 */
  76. /* USER CODE END CRC_MspInit 1 */
  77. }
  78. }
  79. /**
  80. * @brief CRC MSP De-Initialization
  81. * This function freeze the hardware resources used in this example
  82. * @param hcrc: CRC handle pointer
  83. * @retval None
  84. */
  85. void HAL_CRC_MspDeInit(CRC_HandleTypeDef* hcrc)
  86. {
  87. if(hcrc->Instance==CRC)
  88. {
  89. /* USER CODE BEGIN CRC_MspDeInit 0 */
  90. /* USER CODE END CRC_MspDeInit 0 */
  91. /* Peripheral clock disable */
  92. __HAL_RCC_CRC_CLK_DISABLE();
  93. /* USER CODE BEGIN CRC_MspDeInit 1 */
  94. /* USER CODE END CRC_MspDeInit 1 */
  95. }
  96. }
  97. /**
  98. * @brief DMA2D MSP Initialization
  99. * This function configures the hardware resources used in this example
  100. * @param hdma2d: DMA2D handle pointer
  101. * @retval None
  102. */
  103. void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef* hdma2d)
  104. {
  105. if(hdma2d->Instance==DMA2D)
  106. {
  107. /* USER CODE BEGIN DMA2D_MspInit 0 */
  108. /* USER CODE END DMA2D_MspInit 0 */
  109. /* Peripheral clock enable */
  110. __HAL_RCC_DMA2D_CLK_ENABLE();
  111. /* DMA2D interrupt Init */
  112. HAL_NVIC_SetPriority(DMA2D_IRQn, 5, 0);
  113. HAL_NVIC_EnableIRQ(DMA2D_IRQn);
  114. /* USER CODE BEGIN DMA2D_MspInit 1 */
  115. /* USER CODE END DMA2D_MspInit 1 */
  116. }
  117. }
  118. /**
  119. * @brief DMA2D MSP De-Initialization
  120. * This function freeze the hardware resources used in this example
  121. * @param hdma2d: DMA2D handle pointer
  122. * @retval None
  123. */
  124. void HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef* hdma2d)
  125. {
  126. if(hdma2d->Instance==DMA2D)
  127. {
  128. /* USER CODE BEGIN DMA2D_MspDeInit 0 */
  129. /* USER CODE END DMA2D_MspDeInit 0 */
  130. /* Peripheral clock disable */
  131. __HAL_RCC_DMA2D_CLK_DISABLE();
  132. /* DMA2D interrupt DeInit */
  133. HAL_NVIC_DisableIRQ(DMA2D_IRQn);
  134. /* USER CODE BEGIN DMA2D_MspDeInit 1 */
  135. /* USER CODE END DMA2D_MspDeInit 1 */
  136. }
  137. }
  138. /**
  139. * @brief I2C MSP Initialization
  140. * This function configures the hardware resources used in this example
  141. * @param hi2c: I2C handle pointer
  142. * @retval None
  143. */
  144. void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
  145. {
  146. GPIO_InitTypeDef GPIO_InitStruct = {0};
  147. if(hi2c->Instance==I2C3)
  148. {
  149. /* USER CODE BEGIN I2C3_MspInit 0 */
  150. /* USER CODE END I2C3_MspInit 0 */
  151. __HAL_RCC_GPIOC_CLK_ENABLE();
  152. __HAL_RCC_GPIOA_CLK_ENABLE();
  153. /**I2C3 GPIO Configuration
  154. PC9 ------> I2C3_SDA
  155. PA8 ------> I2C3_SCL
  156. */
  157. GPIO_InitStruct.Pin = I2C3_SDA_Pin;
  158. GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
  159. GPIO_InitStruct.Pull = GPIO_PULLUP;
  160. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  161. GPIO_InitStruct.Alternate = GPIO_AF4_I2C3;
  162. HAL_GPIO_Init(I2C3_SDA_GPIO_Port, &GPIO_InitStruct);
  163. GPIO_InitStruct.Pin = I2C3_SCL_Pin;
  164. GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
  165. GPIO_InitStruct.Pull = GPIO_PULLUP;
  166. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  167. GPIO_InitStruct.Alternate = GPIO_AF4_I2C3;
  168. HAL_GPIO_Init(I2C3_SCL_GPIO_Port, &GPIO_InitStruct);
  169. /* Peripheral clock enable */
  170. __HAL_RCC_I2C3_CLK_ENABLE();
  171. /* USER CODE BEGIN I2C3_MspInit 1 */
  172. /* USER CODE END I2C3_MspInit 1 */
  173. }
  174. }
  175. /**
  176. * @brief I2C MSP De-Initialization
  177. * This function freeze the hardware resources used in this example
  178. * @param hi2c: I2C handle pointer
  179. * @retval None
  180. */
  181. void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c)
  182. {
  183. if(hi2c->Instance==I2C3)
  184. {
  185. /* USER CODE BEGIN I2C3_MspDeInit 0 */
  186. /* USER CODE END I2C3_MspDeInit 0 */
  187. /* Peripheral clock disable */
  188. __HAL_RCC_I2C3_CLK_DISABLE();
  189. /**I2C3 GPIO Configuration
  190. PC9 ------> I2C3_SDA
  191. PA8 ------> I2C3_SCL
  192. */
  193. HAL_GPIO_DeInit(I2C3_SDA_GPIO_Port, I2C3_SDA_Pin);
  194. HAL_GPIO_DeInit(I2C3_SCL_GPIO_Port, I2C3_SCL_Pin);
  195. /* USER CODE BEGIN I2C3_MspDeInit 1 */
  196. /* USER CODE END I2C3_MspDeInit 1 */
  197. }
  198. }
  199. /**
  200. * @brief LTDC MSP Initialization
  201. * This function configures the hardware resources used in this example
  202. * @param hltdc: LTDC handle pointer
  203. * @retval None
  204. */
  205. void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
  206. {
  207. GPIO_InitTypeDef GPIO_InitStruct = {0};
  208. if(hltdc->Instance==LTDC)
  209. {
  210. /* USER CODE BEGIN LTDC_MspInit 0 */
  211. /* USER CODE END LTDC_MspInit 0 */
  212. /* Peripheral clock enable */
  213. __HAL_RCC_LTDC_CLK_ENABLE();
  214. __HAL_RCC_GPIOF_CLK_ENABLE();
  215. __HAL_RCC_GPIOA_CLK_ENABLE();
  216. __HAL_RCC_GPIOB_CLK_ENABLE();
  217. __HAL_RCC_GPIOG_CLK_ENABLE();
  218. __HAL_RCC_GPIOC_CLK_ENABLE();
  219. __HAL_RCC_GPIOD_CLK_ENABLE();
  220. /**LTDC GPIO Configuration
  221. PF10 ------> LTDC_DE
  222. PA3 ------> LTDC_B5
  223. PA4 ------> LTDC_VSYNC
  224. PA6 ------> LTDC_G2
  225. PB0 ------> LTDC_R3
  226. PB1 ------> LTDC_R6
  227. PB10 ------> LTDC_G4
  228. PB11 ------> LTDC_G5
  229. PG6 ------> LTDC_R7
  230. PG7 ------> LTDC_CLK
  231. PC6 ------> LTDC_HSYNC
  232. PC7 ------> LTDC_G6
  233. PA11 ------> LTDC_R4
  234. PA12 ------> LTDC_R5
  235. PC10 ------> LTDC_R2
  236. PD3 ------> LTDC_G7
  237. PD6 ------> LTDC_B2
  238. PG10 ------> LTDC_G3
  239. PG11 ------> LTDC_B3
  240. PG12 ------> LTDC_B4
  241. PB8 ------> LTDC_B6
  242. PB9 ------> LTDC_B7
  243. */
  244. GPIO_InitStruct.Pin = ENABLE_Pin;
  245. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  246. GPIO_InitStruct.Pull = GPIO_NOPULL;
  247. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  248. GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
  249. HAL_GPIO_Init(ENABLE_GPIO_Port, &GPIO_InitStruct);
  250. GPIO_InitStruct.Pin = B5_Pin|VSYNC_Pin|G2_Pin|R4_Pin
  251. |R5_Pin;
  252. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  253. GPIO_InitStruct.Pull = GPIO_NOPULL;
  254. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  255. GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
  256. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  257. GPIO_InitStruct.Pin = R3_Pin|R6_Pin;
  258. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  259. GPIO_InitStruct.Pull = GPIO_NOPULL;
  260. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  261. GPIO_InitStruct.Alternate = GPIO_AF9_LTDC;
  262. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  263. GPIO_InitStruct.Pin = G4_Pin|G5_Pin|B6_Pin|B7_Pin;
  264. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  265. GPIO_InitStruct.Pull = GPIO_NOPULL;
  266. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  267. GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
  268. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  269. GPIO_InitStruct.Pin = R7_Pin|DOTCLK_Pin|B3_Pin;
  270. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  271. GPIO_InitStruct.Pull = GPIO_NOPULL;
  272. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  273. GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
  274. HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
  275. GPIO_InitStruct.Pin = HSYNC_Pin|G6_Pin|R2_Pin;
  276. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  277. GPIO_InitStruct.Pull = GPIO_NOPULL;
  278. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  279. GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
  280. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  281. GPIO_InitStruct.Pin = G7_Pin|B2_Pin;
  282. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  283. GPIO_InitStruct.Pull = GPIO_NOPULL;
  284. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  285. GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
  286. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  287. GPIO_InitStruct.Pin = G3_Pin|B4_Pin;
  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_AF9_LTDC;
  292. HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
  293. /* LTDC interrupt Init */
  294. HAL_NVIC_SetPriority(LTDC_IRQn, 5, 0);
  295. HAL_NVIC_EnableIRQ(LTDC_IRQn);
  296. /* USER CODE BEGIN LTDC_MspInit 1 */
  297. /* USER CODE END LTDC_MspInit 1 */
  298. }
  299. }
  300. /**
  301. * @brief LTDC MSP De-Initialization
  302. * This function freeze the hardware resources used in this example
  303. * @param hltdc: LTDC handle pointer
  304. * @retval None
  305. */
  306. void HAL_LTDC_MspDeInit(LTDC_HandleTypeDef* hltdc)
  307. {
  308. if(hltdc->Instance==LTDC)
  309. {
  310. /* USER CODE BEGIN LTDC_MspDeInit 0 */
  311. /* USER CODE END LTDC_MspDeInit 0 */
  312. /* Peripheral clock disable */
  313. __HAL_RCC_LTDC_CLK_DISABLE();
  314. /**LTDC GPIO Configuration
  315. PF10 ------> LTDC_DE
  316. PA3 ------> LTDC_B5
  317. PA4 ------> LTDC_VSYNC
  318. PA6 ------> LTDC_G2
  319. PB0 ------> LTDC_R3
  320. PB1 ------> LTDC_R6
  321. PB10 ------> LTDC_G4
  322. PB11 ------> LTDC_G5
  323. PG6 ------> LTDC_R7
  324. PG7 ------> LTDC_CLK
  325. PC6 ------> LTDC_HSYNC
  326. PC7 ------> LTDC_G6
  327. PA11 ------> LTDC_R4
  328. PA12 ------> LTDC_R5
  329. PC10 ------> LTDC_R2
  330. PD3 ------> LTDC_G7
  331. PD6 ------> LTDC_B2
  332. PG10 ------> LTDC_G3
  333. PG11 ------> LTDC_B3
  334. PG12 ------> LTDC_B4
  335. PB8 ------> LTDC_B6
  336. PB9 ------> LTDC_B7
  337. */
  338. HAL_GPIO_DeInit(ENABLE_GPIO_Port, ENABLE_Pin);
  339. HAL_GPIO_DeInit(GPIOA, B5_Pin|VSYNC_Pin|G2_Pin|R4_Pin
  340. |R5_Pin);
  341. HAL_GPIO_DeInit(GPIOB, R3_Pin|R6_Pin|G4_Pin|G5_Pin
  342. |B6_Pin|B7_Pin);
  343. HAL_GPIO_DeInit(GPIOG, R7_Pin|DOTCLK_Pin|G3_Pin|B3_Pin
  344. |B4_Pin);
  345. HAL_GPIO_DeInit(GPIOC, HSYNC_Pin|G6_Pin|R2_Pin);
  346. HAL_GPIO_DeInit(GPIOD, G7_Pin|B2_Pin);
  347. /* LTDC interrupt DeInit */
  348. HAL_NVIC_DisableIRQ(LTDC_IRQn);
  349. /* USER CODE BEGIN LTDC_MspDeInit 1 */
  350. /* USER CODE END LTDC_MspDeInit 1 */
  351. }
  352. }
  353. /**
  354. * @brief SPI MSP Initialization
  355. * This function configures the hardware resources used in this example
  356. * @param hspi: SPI handle pointer
  357. * @retval None
  358. */
  359. void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
  360. {
  361. GPIO_InitTypeDef GPIO_InitStruct = {0};
  362. if(hspi->Instance==SPI5)
  363. {
  364. /* USER CODE BEGIN SPI5_MspInit 0 */
  365. /* USER CODE END SPI5_MspInit 0 */
  366. /* Peripheral clock enable */
  367. __HAL_RCC_SPI5_CLK_ENABLE();
  368. __HAL_RCC_GPIOF_CLK_ENABLE();
  369. /**SPI5 GPIO Configuration
  370. PF7 ------> SPI5_SCK
  371. PF8 ------> SPI5_MISO
  372. PF9 ------> SPI5_MOSI
  373. */
  374. GPIO_InitStruct.Pin = SPI5_SCK_Pin|SPI5_MISO_Pin|SPI5_MOSI_Pin;
  375. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  376. GPIO_InitStruct.Pull = GPIO_NOPULL;
  377. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  378. GPIO_InitStruct.Alternate = GPIO_AF5_SPI5;
  379. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  380. /* USER CODE BEGIN SPI5_MspInit 1 */
  381. /* USER CODE END SPI5_MspInit 1 */
  382. }
  383. }
  384. /**
  385. * @brief SPI MSP De-Initialization
  386. * This function freeze the hardware resources used in this example
  387. * @param hspi: SPI handle pointer
  388. * @retval None
  389. */
  390. void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
  391. {
  392. if(hspi->Instance==SPI5)
  393. {
  394. /* USER CODE BEGIN SPI5_MspDeInit 0 */
  395. /* USER CODE END SPI5_MspDeInit 0 */
  396. /* Peripheral clock disable */
  397. __HAL_RCC_SPI5_CLK_DISABLE();
  398. /**SPI5 GPIO Configuration
  399. PF7 ------> SPI5_SCK
  400. PF8 ------> SPI5_MISO
  401. PF9 ------> SPI5_MOSI
  402. */
  403. HAL_GPIO_DeInit(GPIOF, SPI5_SCK_Pin|SPI5_MISO_Pin|SPI5_MOSI_Pin);
  404. /* USER CODE BEGIN SPI5_MspDeInit 1 */
  405. /* USER CODE END SPI5_MspDeInit 1 */
  406. }
  407. }
  408. /**
  409. * @brief TIM_Base MSP Initialization
  410. * This function configures the hardware resources used in this example
  411. * @param htim_base: TIM_Base handle pointer
  412. * @retval None
  413. */
  414. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
  415. {
  416. if(htim_base->Instance==TIM1)
  417. {
  418. /* USER CODE BEGIN TIM1_MspInit 0 */
  419. /* USER CODE END TIM1_MspInit 0 */
  420. /* Peripheral clock enable */
  421. __HAL_RCC_TIM1_CLK_ENABLE();
  422. /* USER CODE BEGIN TIM1_MspInit 1 */
  423. /* USER CODE END TIM1_MspInit 1 */
  424. }
  425. }
  426. /**
  427. * @brief TIM_Base MSP De-Initialization
  428. * This function freeze the hardware resources used in this example
  429. * @param htim_base: TIM_Base handle pointer
  430. * @retval None
  431. */
  432. void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
  433. {
  434. if(htim_base->Instance==TIM1)
  435. {
  436. /* USER CODE BEGIN TIM1_MspDeInit 0 */
  437. /* USER CODE END TIM1_MspDeInit 0 */
  438. /* Peripheral clock disable */
  439. __HAL_RCC_TIM1_CLK_DISABLE();
  440. /* USER CODE BEGIN TIM1_MspDeInit 1 */
  441. /* USER CODE END TIM1_MspDeInit 1 */
  442. }
  443. }
  444. /**
  445. * @brief UART MSP Initialization
  446. * This function configures the hardware resources used in this example
  447. * @param huart: UART handle pointer
  448. * @retval None
  449. */
  450. void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  451. {
  452. GPIO_InitTypeDef GPIO_InitStruct = {0};
  453. if(huart->Instance==USART1)
  454. {
  455. /* USER CODE BEGIN USART1_MspInit 0 */
  456. /* USER CODE END USART1_MspInit 0 */
  457. /* Peripheral clock enable */
  458. __HAL_RCC_USART1_CLK_ENABLE();
  459. __HAL_RCC_GPIOA_CLK_ENABLE();
  460. /**USART1 GPIO Configuration
  461. PA9 ------> USART1_TX
  462. PA10 ------> USART1_RX
  463. */
  464. GPIO_InitStruct.Pin = STLINK_RX_Pin|STLINK_TX_Pin;
  465. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  466. GPIO_InitStruct.Pull = GPIO_PULLUP;
  467. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  468. GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
  469. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  470. /* USER CODE BEGIN USART1_MspInit 1 */
  471. /* USER CODE END USART1_MspInit 1 */
  472. }
  473. }
  474. /**
  475. * @brief UART MSP De-Initialization
  476. * This function freeze the hardware resources used in this example
  477. * @param huart: UART handle pointer
  478. * @retval None
  479. */
  480. void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
  481. {
  482. if(huart->Instance==USART1)
  483. {
  484. /* USER CODE BEGIN USART1_MspDeInit 0 */
  485. /* USER CODE END USART1_MspDeInit 0 */
  486. /* Peripheral clock disable */
  487. __HAL_RCC_USART1_CLK_DISABLE();
  488. /**USART1 GPIO Configuration
  489. PA9 ------> USART1_TX
  490. PA10 ------> USART1_RX
  491. */
  492. HAL_GPIO_DeInit(GPIOA, STLINK_RX_Pin|STLINK_TX_Pin);
  493. /* USER CODE BEGIN USART1_MspDeInit 1 */
  494. /* USER CODE END USART1_MspDeInit 1 */
  495. }
  496. }
  497. static uint32_t FMC_Initialized = 0;
  498. static void HAL_FMC_MspInit(void){
  499. /* USER CODE BEGIN FMC_MspInit 0 */
  500. /* USER CODE END FMC_MspInit 0 */
  501. GPIO_InitTypeDef GPIO_InitStruct ={0};
  502. if (FMC_Initialized) {
  503. return;
  504. }
  505. FMC_Initialized = 1;
  506. /* Peripheral clock enable */
  507. __HAL_RCC_FMC_CLK_ENABLE();
  508. /** FMC GPIO Configuration
  509. PF0 ------> FMC_A0
  510. PF1 ------> FMC_A1
  511. PF2 ------> FMC_A2
  512. PF3 ------> FMC_A3
  513. PF4 ------> FMC_A4
  514. PF5 ------> FMC_A5
  515. PC0 ------> FMC_SDNWE
  516. PF11 ------> FMC_SDNRAS
  517. PF12 ------> FMC_A6
  518. PF13 ------> FMC_A7
  519. PF14 ------> FMC_A8
  520. PF15 ------> FMC_A9
  521. PG0 ------> FMC_A10
  522. PG1 ------> FMC_A11
  523. PE7 ------> FMC_D4
  524. PE8 ------> FMC_D5
  525. PE9 ------> FMC_D6
  526. PE10 ------> FMC_D7
  527. PE11 ------> FMC_D8
  528. PE12 ------> FMC_D9
  529. PE13 ------> FMC_D10
  530. PE14 ------> FMC_D11
  531. PE15 ------> FMC_D12
  532. PD8 ------> FMC_D13
  533. PD9 ------> FMC_D14
  534. PD10 ------> FMC_D15
  535. PD14 ------> FMC_D0
  536. PD15 ------> FMC_D1
  537. PG4 ------> FMC_BA0
  538. PG5 ------> FMC_BA1
  539. PG8 ------> FMC_SDCLK
  540. PD0 ------> FMC_D2
  541. PD1 ------> FMC_D3
  542. PG15 ------> FMC_SDNCAS
  543. PB5 ------> FMC_SDCKE1
  544. PB6 ------> FMC_SDNE1
  545. PE0 ------> FMC_NBL0
  546. PE1 ------> FMC_NBL1
  547. */
  548. GPIO_InitStruct.Pin = A0_Pin|A1_Pin|A2_Pin|A3_Pin
  549. |A4_Pin|A5_Pin|SDNRAS_Pin|A6_Pin
  550. |A7_Pin|A8_Pin|A9_Pin;
  551. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  552. GPIO_InitStruct.Pull = GPIO_NOPULL;
  553. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  554. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  555. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  556. GPIO_InitStruct.Pin = SDNWE_Pin;
  557. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  558. GPIO_InitStruct.Pull = GPIO_NOPULL;
  559. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  560. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  561. HAL_GPIO_Init(SDNWE_GPIO_Port, &GPIO_InitStruct);
  562. GPIO_InitStruct.Pin = A10_Pin|A11_Pin|BA0_Pin|BA1_Pin
  563. |SDCLK_Pin|SDNCAS_Pin;
  564. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  565. GPIO_InitStruct.Pull = GPIO_NOPULL;
  566. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  567. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  568. HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
  569. GPIO_InitStruct.Pin = D4_Pin|D5_Pin|D6_Pin|D7_Pin
  570. |D8_Pin|D9_Pin|D10_Pin|D11_Pin
  571. |D12_Pin|NBL0_Pin|NBL1_Pin;
  572. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  573. GPIO_InitStruct.Pull = GPIO_NOPULL;
  574. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  575. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  576. HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
  577. GPIO_InitStruct.Pin = D13_Pin|D14_Pin|D15_Pin|D0_Pin
  578. |D1_Pin|D2_Pin|D3_Pin;
  579. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  580. GPIO_InitStruct.Pull = GPIO_NOPULL;
  581. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  582. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  583. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  584. GPIO_InitStruct.Pin = SDCKE1_Pin|SDNE1_Pin;
  585. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  586. GPIO_InitStruct.Pull = GPIO_NOPULL;
  587. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  588. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  589. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  590. /* USER CODE BEGIN FMC_MspInit 1 */
  591. /* USER CODE END FMC_MspInit 1 */
  592. }
  593. void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef* hsdram){
  594. /* USER CODE BEGIN SDRAM_MspInit 0 */
  595. /* USER CODE END SDRAM_MspInit 0 */
  596. HAL_FMC_MspInit();
  597. /* USER CODE BEGIN SDRAM_MspInit 1 */
  598. /* USER CODE END SDRAM_MspInit 1 */
  599. }
  600. static uint32_t FMC_DeInitialized = 0;
  601. static void HAL_FMC_MspDeInit(void){
  602. /* USER CODE BEGIN FMC_MspDeInit 0 */
  603. /* USER CODE END FMC_MspDeInit 0 */
  604. if (FMC_DeInitialized) {
  605. return;
  606. }
  607. FMC_DeInitialized = 1;
  608. /* Peripheral clock enable */
  609. __HAL_RCC_FMC_CLK_DISABLE();
  610. /** FMC GPIO Configuration
  611. PF0 ------> FMC_A0
  612. PF1 ------> FMC_A1
  613. PF2 ------> FMC_A2
  614. PF3 ------> FMC_A3
  615. PF4 ------> FMC_A4
  616. PF5 ------> FMC_A5
  617. PC0 ------> FMC_SDNWE
  618. PF11 ------> FMC_SDNRAS
  619. PF12 ------> FMC_A6
  620. PF13 ------> FMC_A7
  621. PF14 ------> FMC_A8
  622. PF15 ------> FMC_A9
  623. PG0 ------> FMC_A10
  624. PG1 ------> FMC_A11
  625. PE7 ------> FMC_D4
  626. PE8 ------> FMC_D5
  627. PE9 ------> FMC_D6
  628. PE10 ------> FMC_D7
  629. PE11 ------> FMC_D8
  630. PE12 ------> FMC_D9
  631. PE13 ------> FMC_D10
  632. PE14 ------> FMC_D11
  633. PE15 ------> FMC_D12
  634. PD8 ------> FMC_D13
  635. PD9 ------> FMC_D14
  636. PD10 ------> FMC_D15
  637. PD14 ------> FMC_D0
  638. PD15 ------> FMC_D1
  639. PG4 ------> FMC_BA0
  640. PG5 ------> FMC_BA1
  641. PG8 ------> FMC_SDCLK
  642. PD0 ------> FMC_D2
  643. PD1 ------> FMC_D3
  644. PG15 ------> FMC_SDNCAS
  645. PB5 ------> FMC_SDCKE1
  646. PB6 ------> FMC_SDNE1
  647. PE0 ------> FMC_NBL0
  648. PE1 ------> FMC_NBL1
  649. */
  650. HAL_GPIO_DeInit(GPIOF, A0_Pin|A1_Pin|A2_Pin|A3_Pin
  651. |A4_Pin|A5_Pin|SDNRAS_Pin|A6_Pin
  652. |A7_Pin|A8_Pin|A9_Pin);
  653. HAL_GPIO_DeInit(SDNWE_GPIO_Port, SDNWE_Pin);
  654. HAL_GPIO_DeInit(GPIOG, A10_Pin|A11_Pin|BA0_Pin|BA1_Pin
  655. |SDCLK_Pin|SDNCAS_Pin);
  656. HAL_GPIO_DeInit(GPIOE, D4_Pin|D5_Pin|D6_Pin|D7_Pin
  657. |D8_Pin|D9_Pin|D10_Pin|D11_Pin
  658. |D12_Pin|NBL0_Pin|NBL1_Pin);
  659. HAL_GPIO_DeInit(GPIOD, D13_Pin|D14_Pin|D15_Pin|D0_Pin
  660. |D1_Pin|D2_Pin|D3_Pin);
  661. HAL_GPIO_DeInit(GPIOB, SDCKE1_Pin|SDNE1_Pin);
  662. /* USER CODE BEGIN FMC_MspDeInit 1 */
  663. /* USER CODE END FMC_MspDeInit 1 */
  664. }
  665. void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef* hsdram){
  666. /* USER CODE BEGIN SDRAM_MspDeInit 0 */
  667. /* USER CODE END SDRAM_MspDeInit 0 */
  668. HAL_FMC_MspDeInit();
  669. /* USER CODE BEGIN SDRAM_MspDeInit 1 */
  670. /* USER CODE END SDRAM_MspDeInit 1 */
  671. }
  672. /* USER CODE BEGIN 1 */
  673. /* USER CODE END 1 */
  674. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/