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