stm32l5xx_hal_msp.c 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017
  1. /* USER CODE BEGIN Header */
  2. /**
  3. ******************************************************************************
  4. * @file stm32l5xx_hal_msp.c
  5. * @brief This file provides code for the MSP Initialization
  6. * and de-Initialization codes.
  7. ******************************************************************************
  8. * @attention
  9. *
  10. * Copyright (c) 2023 STMicroelectronics.
  11. * All rights reserved.
  12. *
  13. * This software is licensed under terms that can be found in the LICENSE file
  14. * in the root directory of this software component.
  15. * If no LICENSE file comes with this software, it is provided AS-IS.
  16. *
  17. ******************************************************************************
  18. */
  19. /* USER CODE END Header */
  20. /* Includes ------------------------------------------------------------------*/
  21. #include "main.h"
  22. /* USER CODE BEGIN Includes */
  23. /* USER CODE END Includes */
  24. /* Private typedef -----------------------------------------------------------*/
  25. /* USER CODE BEGIN TD */
  26. /* USER CODE END TD */
  27. /* Private define ------------------------------------------------------------*/
  28. /* USER CODE BEGIN Define */
  29. /* USER CODE END Define */
  30. /* Private macro -------------------------------------------------------------*/
  31. /* USER CODE BEGIN Macro */
  32. /* USER CODE END Macro */
  33. /* Private variables ---------------------------------------------------------*/
  34. /* USER CODE BEGIN PV */
  35. /* USER CODE END PV */
  36. /* Private function prototypes -----------------------------------------------*/
  37. /* USER CODE BEGIN PFP */
  38. /* USER CODE END PFP */
  39. /* External functions --------------------------------------------------------*/
  40. /* USER CODE BEGIN ExternalFunctions */
  41. /* USER CODE END ExternalFunctions */
  42. /* USER CODE BEGIN 0 */
  43. /* USER CODE END 0 */
  44. /**
  45. * Initializes the Global MSP.
  46. */
  47. void HAL_MspInit(void)
  48. {
  49. /* USER CODE BEGIN MspInit 0 */
  50. /* USER CODE END MspInit 0 */
  51. __HAL_RCC_SYSCFG_CLK_ENABLE();
  52. __HAL_RCC_PWR_CLK_ENABLE();
  53. __HAL_RCC_GTZC_CLK_ENABLE();
  54. /* System interrupt init*/
  55. /* PendSV_IRQn interrupt configuration */
  56. HAL_NVIC_SetPriority(PendSV_IRQn, 7, 0);
  57. /** Disable the internal Pull-Up in Dead Battery pins of UCPD peripheral
  58. */
  59. HAL_PWREx_DisableUCPDDeadBattery();
  60. /* USER CODE BEGIN MspInit 1 */
  61. /* USER CODE END MspInit 1 */
  62. }
  63. /**
  64. * @brief ADC MSP Initialization
  65. * This function configures the hardware resources used in this example
  66. * @param hadc: ADC handle pointer
  67. * @retval None
  68. */
  69. void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
  70. {
  71. GPIO_InitTypeDef GPIO_InitStruct = {0};
  72. if(hadc->Instance==ADC1)
  73. {
  74. /* USER CODE BEGIN ADC1_MspInit 0 */
  75. /* USER CODE END ADC1_MspInit 0 */
  76. /* Peripheral clock enable */
  77. __HAL_RCC_ADC_CLK_ENABLE();
  78. __HAL_RCC_GPIOC_CLK_ENABLE();
  79. __HAL_RCC_GPIOA_CLK_ENABLE();
  80. __HAL_RCC_GPIOB_CLK_ENABLE();
  81. /**ADC1 GPIO Configuration
  82. PC0 ------> ADC1_IN1
  83. PC1 ------> ADC1_IN2
  84. PC2 ------> ADC1_IN3
  85. PC3 ------> ADC1_IN4
  86. PA7 ------> ADC1_IN12
  87. PC4 ------> ADC1_IN13
  88. PB0 ------> ADC1_IN15
  89. PB1 ------> ADC1_IN16
  90. */
  91. GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
  92. |GPIO_PIN_4;
  93. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  94. GPIO_InitStruct.Pull = GPIO_NOPULL;
  95. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  96. GPIO_InitStruct.Pin = GPIO_PIN_7;
  97. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  98. GPIO_InitStruct.Pull = GPIO_NOPULL;
  99. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  100. GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
  101. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  102. GPIO_InitStruct.Pull = GPIO_NOPULL;
  103. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  104. /* USER CODE BEGIN ADC1_MspInit 1 */
  105. /* USER CODE END ADC1_MspInit 1 */
  106. }
  107. }
  108. /**
  109. * @brief ADC MSP De-Initialization
  110. * This function freeze the hardware resources used in this example
  111. * @param hadc: ADC handle pointer
  112. * @retval None
  113. */
  114. void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
  115. {
  116. if(hadc->Instance==ADC1)
  117. {
  118. /* USER CODE BEGIN ADC1_MspDeInit 0 */
  119. /* USER CODE END ADC1_MspDeInit 0 */
  120. /* Peripheral clock disable */
  121. __HAL_RCC_ADC_CLK_DISABLE();
  122. /**ADC1 GPIO Configuration
  123. PC0 ------> ADC1_IN1
  124. PC1 ------> ADC1_IN2
  125. PC2 ------> ADC1_IN3
  126. PC3 ------> ADC1_IN4
  127. PA7 ------> ADC1_IN12
  128. PC4 ------> ADC1_IN13
  129. PB0 ------> ADC1_IN15
  130. PB1 ------> ADC1_IN16
  131. */
  132. HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
  133. |GPIO_PIN_4);
  134. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_7);
  135. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0|GPIO_PIN_1);
  136. /* USER CODE BEGIN ADC1_MspDeInit 1 */
  137. /* USER CODE END ADC1_MspDeInit 1 */
  138. }
  139. }
  140. /**
  141. * @brief FDCAN MSP Initialization
  142. * This function configures the hardware resources used in this example
  143. * @param hfdcan: FDCAN handle pointer
  144. * @retval None
  145. */
  146. void HAL_FDCAN_MspInit(FDCAN_HandleTypeDef* hfdcan)
  147. {
  148. GPIO_InitTypeDef GPIO_InitStruct = {0};
  149. RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
  150. if(hfdcan->Instance==FDCAN1)
  151. {
  152. /* USER CODE BEGIN FDCAN1_MspInit 0 */
  153. /* USER CODE END FDCAN1_MspInit 0 */
  154. /** Initializes the peripherals clock
  155. */
  156. PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_FDCAN;
  157. PeriphClkInit.FdcanClockSelection = RCC_FDCANCLKSOURCE_PLL;
  158. if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
  159. {
  160. Error_Handler();
  161. }
  162. /* Peripheral clock enable */
  163. __HAL_RCC_FDCAN1_CLK_ENABLE();
  164. __HAL_RCC_GPIOB_CLK_ENABLE();
  165. /**FDCAN1 GPIO Configuration
  166. PB8 ------> FDCAN1_RX
  167. PB9 ------> FDCAN1_TX
  168. */
  169. GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9;
  170. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  171. GPIO_InitStruct.Pull = GPIO_NOPULL;
  172. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  173. GPIO_InitStruct.Alternate = GPIO_AF9_FDCAN1;
  174. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  175. /* USER CODE BEGIN FDCAN1_MspInit 1 */
  176. /* USER CODE END FDCAN1_MspInit 1 */
  177. }
  178. }
  179. /**
  180. * @brief FDCAN MSP De-Initialization
  181. * This function freeze the hardware resources used in this example
  182. * @param hfdcan: FDCAN handle pointer
  183. * @retval None
  184. */
  185. void HAL_FDCAN_MspDeInit(FDCAN_HandleTypeDef* hfdcan)
  186. {
  187. if(hfdcan->Instance==FDCAN1)
  188. {
  189. /* USER CODE BEGIN FDCAN1_MspDeInit 0 */
  190. /* USER CODE END FDCAN1_MspDeInit 0 */
  191. /* Peripheral clock disable */
  192. __HAL_RCC_FDCAN1_CLK_DISABLE();
  193. /**FDCAN1 GPIO Configuration
  194. PB8 ------> FDCAN1_RX
  195. PB9 ------> FDCAN1_TX
  196. */
  197. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_8|GPIO_PIN_9);
  198. /* USER CODE BEGIN FDCAN1_MspDeInit 1 */
  199. /* USER CODE END FDCAN1_MspDeInit 1 */
  200. }
  201. }
  202. /**
  203. * @brief I2C MSP Initialization
  204. * This function configures the hardware resources used in this example
  205. * @param hi2c: I2C handle pointer
  206. * @retval None
  207. */
  208. void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
  209. {
  210. GPIO_InitTypeDef GPIO_InitStruct = {0};
  211. RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
  212. if(hi2c->Instance==I2C1)
  213. {
  214. /* USER CODE BEGIN I2C1_MspInit 0 */
  215. /* USER CODE END I2C1_MspInit 0 */
  216. /** Initializes the peripherals clock
  217. */
  218. PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C1;
  219. PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1;
  220. if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
  221. {
  222. Error_Handler();
  223. }
  224. __HAL_RCC_GPIOB_CLK_ENABLE();
  225. /**I2C1 GPIO Configuration
  226. PB6 ------> I2C1_SCL
  227. PB7 ------> I2C1_SDA
  228. */
  229. GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
  230. GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
  231. GPIO_InitStruct.Pull = GPIO_NOPULL;
  232. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  233. GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
  234. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  235. /* Peripheral clock enable */
  236. __HAL_RCC_I2C1_CLK_ENABLE();
  237. /* USER CODE BEGIN I2C1_MspInit 1 */
  238. /* USER CODE END I2C1_MspInit 1 */
  239. }
  240. else if(hi2c->Instance==I2C3)
  241. {
  242. /* USER CODE BEGIN I2C3_MspInit 0 */
  243. /* USER CODE END I2C3_MspInit 0 */
  244. /** Initializes the peripherals clock
  245. */
  246. PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C3;
  247. PeriphClkInit.I2c3ClockSelection = RCC_I2C3CLKSOURCE_PCLK1;
  248. if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
  249. {
  250. Error_Handler();
  251. }
  252. __HAL_RCC_GPIOG_CLK_ENABLE();
  253. HAL_PWREx_EnableVddIO2();
  254. /**I2C3 GPIO Configuration
  255. PG7 ------> I2C3_SCL
  256. PG8 ------> I2C3_SDA
  257. */
  258. GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8;
  259. GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
  260. GPIO_InitStruct.Pull = GPIO_NOPULL;
  261. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  262. GPIO_InitStruct.Alternate = GPIO_AF4_I2C3;
  263. HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
  264. /* Peripheral clock enable */
  265. __HAL_RCC_I2C3_CLK_ENABLE();
  266. /* USER CODE BEGIN I2C3_MspInit 1 */
  267. /* USER CODE END I2C3_MspInit 1 */
  268. }
  269. }
  270. /**
  271. * @brief I2C MSP De-Initialization
  272. * This function freeze the hardware resources used in this example
  273. * @param hi2c: I2C handle pointer
  274. * @retval None
  275. */
  276. void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c)
  277. {
  278. if(hi2c->Instance==I2C1)
  279. {
  280. /* USER CODE BEGIN I2C1_MspDeInit 0 */
  281. /* USER CODE END I2C1_MspDeInit 0 */
  282. /* Peripheral clock disable */
  283. __HAL_RCC_I2C1_CLK_DISABLE();
  284. /**I2C1 GPIO Configuration
  285. PB6 ------> I2C1_SCL
  286. PB7 ------> I2C1_SDA
  287. */
  288. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6);
  289. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7);
  290. /* USER CODE BEGIN I2C1_MspDeInit 1 */
  291. /* USER CODE END I2C1_MspDeInit 1 */
  292. }
  293. else if(hi2c->Instance==I2C3)
  294. {
  295. /* USER CODE BEGIN I2C3_MspDeInit 0 */
  296. /* USER CODE END I2C3_MspDeInit 0 */
  297. /* Peripheral clock disable */
  298. __HAL_RCC_I2C3_CLK_DISABLE();
  299. /**I2C3 GPIO Configuration
  300. PG7 ------> I2C3_SCL
  301. PG8 ------> I2C3_SDA
  302. */
  303. HAL_GPIO_DeInit(GPIOG, GPIO_PIN_7);
  304. HAL_GPIO_DeInit(GPIOG, GPIO_PIN_8);
  305. /* USER CODE BEGIN I2C3_MspDeInit 1 */
  306. /* USER CODE END I2C3_MspDeInit 1 */
  307. }
  308. }
  309. /**
  310. * @brief SPI MSP Initialization
  311. * This function configures the hardware resources used in this example
  312. * @param hspi: SPI handle pointer
  313. * @retval None
  314. */
  315. void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
  316. {
  317. GPIO_InitTypeDef GPIO_InitStruct = {0};
  318. if(hspi->Instance==SPI1)
  319. {
  320. /* USER CODE BEGIN SPI1_MspInit 0 */
  321. /* USER CODE END SPI1_MspInit 0 */
  322. /* Peripheral clock enable */
  323. __HAL_RCC_SPI1_CLK_ENABLE();
  324. __HAL_RCC_GPIOA_CLK_ENABLE();
  325. __HAL_RCC_GPIOB_CLK_ENABLE();
  326. /**SPI1 GPIO Configuration
  327. PA4 ------> SPI1_NSS
  328. PA5 ------> SPI1_SCK
  329. PA6 ------> SPI1_MISO
  330. PB5 ------> SPI1_MOSI
  331. */
  332. GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6;
  333. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  334. GPIO_InitStruct.Pull = GPIO_NOPULL;
  335. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  336. GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
  337. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  338. GPIO_InitStruct.Pin = GPIO_PIN_5;
  339. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  340. GPIO_InitStruct.Pull = GPIO_NOPULL;
  341. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  342. GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
  343. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  344. /* USER CODE BEGIN SPI1_MspInit 1 */
  345. /* USER CODE END SPI1_MspInit 1 */
  346. }
  347. else if(hspi->Instance==SPI2)
  348. {
  349. /* USER CODE BEGIN SPI2_MspInit 0 */
  350. /* USER CODE END SPI2_MspInit 0 */
  351. /* Peripheral clock enable */
  352. __HAL_RCC_SPI2_CLK_ENABLE();
  353. __HAL_RCC_GPIOB_CLK_ENABLE();
  354. /**SPI2 GPIO Configuration
  355. PB12 ------> SPI2_NSS
  356. PB13 ------> SPI2_SCK
  357. PB14 ------> SPI2_MISO
  358. PB15 ------> SPI2_MOSI
  359. */
  360. GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
  361. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  362. GPIO_InitStruct.Pull = GPIO_NOPULL;
  363. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  364. GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
  365. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  366. /* USER CODE BEGIN SPI2_MspInit 1 */
  367. /* USER CODE END SPI2_MspInit 1 */
  368. }
  369. }
  370. /**
  371. * @brief SPI MSP De-Initialization
  372. * This function freeze the hardware resources used in this example
  373. * @param hspi: SPI handle pointer
  374. * @retval None
  375. */
  376. void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
  377. {
  378. if(hspi->Instance==SPI1)
  379. {
  380. /* USER CODE BEGIN SPI1_MspDeInit 0 */
  381. /* USER CODE END SPI1_MspDeInit 0 */
  382. /* Peripheral clock disable */
  383. __HAL_RCC_SPI1_CLK_DISABLE();
  384. /**SPI1 GPIO Configuration
  385. PA4 ------> SPI1_NSS
  386. PA5 ------> SPI1_SCK
  387. PA6 ------> SPI1_MISO
  388. PB5 ------> SPI1_MOSI
  389. */
  390. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6);
  391. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_5);
  392. /* USER CODE BEGIN SPI1_MspDeInit 1 */
  393. /* USER CODE END SPI1_MspDeInit 1 */
  394. }
  395. else if(hspi->Instance==SPI2)
  396. {
  397. /* USER CODE BEGIN SPI2_MspDeInit 0 */
  398. /* USER CODE END SPI2_MspDeInit 0 */
  399. /* Peripheral clock disable */
  400. __HAL_RCC_SPI2_CLK_DISABLE();
  401. /**SPI2 GPIO Configuration
  402. PB12 ------> SPI2_NSS
  403. PB13 ------> SPI2_SCK
  404. PB14 ------> SPI2_MISO
  405. PB15 ------> SPI2_MOSI
  406. */
  407. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
  408. /* USER CODE BEGIN SPI2_MspDeInit 1 */
  409. /* USER CODE END SPI2_MspDeInit 1 */
  410. }
  411. }
  412. /**
  413. * @brief TIM_Base MSP Initialization
  414. * This function configures the hardware resources used in this example
  415. * @param htim_base: TIM_Base handle pointer
  416. * @retval None
  417. */
  418. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
  419. {
  420. if(htim_base->Instance==TIM7)
  421. {
  422. /* USER CODE BEGIN TIM7_MspInit 0 */
  423. /* USER CODE END TIM7_MspInit 0 */
  424. /* Peripheral clock enable */
  425. __HAL_RCC_TIM7_CLK_ENABLE();
  426. /* USER CODE BEGIN TIM7_MspInit 1 */
  427. /* USER CODE END TIM7_MspInit 1 */
  428. }
  429. }
  430. /**
  431. * @brief TIM_Base MSP De-Initialization
  432. * This function freeze the hardware resources used in this example
  433. * @param htim_base: TIM_Base handle pointer
  434. * @retval None
  435. */
  436. void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
  437. {
  438. if(htim_base->Instance==TIM7)
  439. {
  440. /* USER CODE BEGIN TIM7_MspDeInit 0 */
  441. /* USER CODE END TIM7_MspDeInit 0 */
  442. /* Peripheral clock disable */
  443. __HAL_RCC_TIM7_CLK_DISABLE();
  444. /* USER CODE BEGIN TIM7_MspDeInit 1 */
  445. /* USER CODE END TIM7_MspDeInit 1 */
  446. }
  447. }
  448. /**
  449. * @brief UART MSP Initialization
  450. * This function configures the hardware resources used in this example
  451. * @param huart: UART handle pointer
  452. * @retval None
  453. */
  454. void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  455. {
  456. GPIO_InitTypeDef GPIO_InitStruct = {0};
  457. RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
  458. if(huart->Instance==UART4)
  459. {
  460. /* USER CODE BEGIN UART4_MspInit 0 */
  461. /* USER CODE END UART4_MspInit 0 */
  462. /** Initializes the peripherals clock
  463. */
  464. PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_UART4;
  465. PeriphClkInit.Uart4ClockSelection = RCC_UART4CLKSOURCE_PCLK1;
  466. if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
  467. {
  468. Error_Handler();
  469. }
  470. /* Peripheral clock enable */
  471. __HAL_RCC_UART4_CLK_ENABLE();
  472. __HAL_RCC_GPIOA_CLK_ENABLE();
  473. /**UART4 GPIO Configuration
  474. PA0 ------> UART4_TX
  475. PA1 ------> UART4_RX
  476. */
  477. GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
  478. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  479. GPIO_InitStruct.Pull = GPIO_NOPULL;
  480. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  481. GPIO_InitStruct.Alternate = GPIO_AF8_UART4;
  482. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  483. /* USER CODE BEGIN UART4_MspInit 1 */
  484. /* USER CODE END UART4_MspInit 1 */
  485. }
  486. else if(huart->Instance==USART1)
  487. {
  488. /* USER CODE BEGIN USART1_MspInit 0 */
  489. /* USER CODE END USART1_MspInit 0 */
  490. /** Initializes the peripherals clock
  491. */
  492. PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1;
  493. PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
  494. if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
  495. {
  496. Error_Handler();
  497. }
  498. /* Peripheral clock enable */
  499. __HAL_RCC_USART1_CLK_ENABLE();
  500. __HAL_RCC_GPIOA_CLK_ENABLE();
  501. /**USART1 GPIO Configuration
  502. PA9 ------> USART1_TX
  503. PA10 ------> USART1_RX
  504. */
  505. GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
  506. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  507. GPIO_InitStruct.Pull = GPIO_NOPULL;
  508. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  509. GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
  510. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  511. /* USER CODE BEGIN USART1_MspInit 1 */
  512. /* USER CODE END USART1_MspInit 1 */
  513. }
  514. else if(huart->Instance==USART2)
  515. {
  516. /* USER CODE BEGIN USART2_MspInit 0 */
  517. /* USER CODE END USART2_MspInit 0 */
  518. /** Initializes the peripherals clock
  519. */
  520. PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2;
  521. PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1;
  522. if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
  523. {
  524. Error_Handler();
  525. }
  526. /* Peripheral clock enable */
  527. __HAL_RCC_USART2_CLK_ENABLE();
  528. __HAL_RCC_GPIOA_CLK_ENABLE();
  529. /**USART2 GPIO Configuration
  530. PA2 ------> USART2_TX
  531. PA3 ------> USART2_RX
  532. */
  533. GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
  534. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  535. GPIO_InitStruct.Pull = GPIO_NOPULL;
  536. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  537. GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
  538. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  539. /* USER CODE BEGIN USART2_MspInit 1 */
  540. /* USER CODE END USART2_MspInit 1 */
  541. }
  542. else if(huart->Instance==USART3)
  543. {
  544. /* USER CODE BEGIN USART3_MspInit 0 */
  545. /* USER CODE END USART3_MspInit 0 */
  546. /** Initializes the peripherals clock
  547. */
  548. PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART3;
  549. PeriphClkInit.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1;
  550. if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
  551. {
  552. Error_Handler();
  553. }
  554. /* Peripheral clock enable */
  555. __HAL_RCC_USART3_CLK_ENABLE();
  556. __HAL_RCC_GPIOC_CLK_ENABLE();
  557. __HAL_RCC_GPIOB_CLK_ENABLE();
  558. /**USART3 GPIO Configuration
  559. PC5 ------> USART3_RX
  560. PB10 ------> USART3_TX
  561. */
  562. GPIO_InitStruct.Pin = GPIO_PIN_5;
  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_AF7_USART3;
  567. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  568. GPIO_InitStruct.Pin = GPIO_PIN_10;
  569. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  570. GPIO_InitStruct.Pull = GPIO_NOPULL;
  571. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  572. GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
  573. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  574. /* USER CODE BEGIN USART3_MspInit 1 */
  575. /* USER CODE END USART3_MspInit 1 */
  576. }
  577. }
  578. /**
  579. * @brief UART MSP De-Initialization
  580. * This function freeze the hardware resources used in this example
  581. * @param huart: UART handle pointer
  582. * @retval None
  583. */
  584. void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
  585. {
  586. if(huart->Instance==UART4)
  587. {
  588. /* USER CODE BEGIN UART4_MspDeInit 0 */
  589. /* USER CODE END UART4_MspDeInit 0 */
  590. /* Peripheral clock disable */
  591. __HAL_RCC_UART4_CLK_DISABLE();
  592. /**UART4 GPIO Configuration
  593. PA0 ------> UART4_TX
  594. PA1 ------> UART4_RX
  595. */
  596. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0|GPIO_PIN_1);
  597. /* USER CODE BEGIN UART4_MspDeInit 1 */
  598. /* USER CODE END UART4_MspDeInit 1 */
  599. }
  600. else if(huart->Instance==USART1)
  601. {
  602. /* USER CODE BEGIN USART1_MspDeInit 0 */
  603. /* USER CODE END USART1_MspDeInit 0 */
  604. /* Peripheral clock disable */
  605. __HAL_RCC_USART1_CLK_DISABLE();
  606. /**USART1 GPIO Configuration
  607. PA9 ------> USART1_TX
  608. PA10 ------> USART1_RX
  609. */
  610. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
  611. /* USER CODE BEGIN USART1_MspDeInit 1 */
  612. /* USER CODE END USART1_MspDeInit 1 */
  613. }
  614. else if(huart->Instance==USART2)
  615. {
  616. /* USER CODE BEGIN USART2_MspDeInit 0 */
  617. /* USER CODE END USART2_MspDeInit 0 */
  618. /* Peripheral clock disable */
  619. __HAL_RCC_USART2_CLK_DISABLE();
  620. /**USART2 GPIO Configuration
  621. PA2 ------> USART2_TX
  622. PA3 ------> USART2_RX
  623. */
  624. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
  625. /* USER CODE BEGIN USART2_MspDeInit 1 */
  626. /* USER CODE END USART2_MspDeInit 1 */
  627. }
  628. else if(huart->Instance==USART3)
  629. {
  630. /* USER CODE BEGIN USART3_MspDeInit 0 */
  631. /* USER CODE END USART3_MspDeInit 0 */
  632. /* Peripheral clock disable */
  633. __HAL_RCC_USART3_CLK_DISABLE();
  634. /**USART3 GPIO Configuration
  635. PC5 ------> USART3_RX
  636. PB10 ------> USART3_TX
  637. */
  638. HAL_GPIO_DeInit(GPIOC, GPIO_PIN_5);
  639. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10);
  640. /* USER CODE BEGIN USART3_MspDeInit 1 */
  641. /* USER CODE END USART3_MspDeInit 1 */
  642. }
  643. }
  644. static uint32_t FMC_Initialized = 0;
  645. static void HAL_FMC_MspInit(void){
  646. /* USER CODE BEGIN FMC_MspInit 0 */
  647. /* USER CODE END FMC_MspInit 0 */
  648. GPIO_InitTypeDef GPIO_InitStruct ={0};
  649. if (FMC_Initialized) {
  650. return;
  651. }
  652. FMC_Initialized = 1;
  653. /* Peripheral clock enable */
  654. __HAL_RCC_FMC_CLK_ENABLE();
  655. /** FMC GPIO Configuration
  656. PE2 ------> FMC_A23
  657. PE3 ------> FMC_A19
  658. PE4 ------> FMC_A20
  659. PE5 ------> FMC_A21
  660. PE6 ------> FMC_A22
  661. PF0 ------> FMC_A0
  662. PF1 ------> FMC_A1
  663. PF2 ------> FMC_A2
  664. PF3 ------> FMC_A3
  665. PF4 ------> FMC_A4
  666. PF5 ------> FMC_A5
  667. PF12 ------> FMC_A6
  668. PF13 ------> FMC_A7
  669. PF14 ------> FMC_A8
  670. PF15 ------> FMC_A9
  671. PG0 ------> FMC_A10
  672. PG1 ------> FMC_A11
  673. PE7 ------> FMC_D4
  674. PE8 ------> FMC_D5
  675. PE9 ------> FMC_D6
  676. PE10 ------> FMC_D7
  677. PE11 ------> FMC_D8
  678. PE12 ------> FMC_D9
  679. PE13 ------> FMC_D10
  680. PE14 ------> FMC_D11
  681. PE15 ------> FMC_D12
  682. PD8 ------> FMC_D13
  683. PD9 ------> FMC_D14
  684. PD10 ------> FMC_D15
  685. PD11 ------> FMC_A16
  686. PD12 ------> FMC_A17
  687. PD13 ------> FMC_A18
  688. PD14 ------> FMC_D0
  689. PD15 ------> FMC_D1
  690. PG2 ------> FMC_A12
  691. PG3 ------> FMC_A13
  692. PG4 ------> FMC_A14
  693. PG5 ------> FMC_A15
  694. PD0 ------> FMC_D2
  695. PD1 ------> FMC_D3
  696. PD4 ------> FMC_NOE
  697. PD5 ------> FMC_NWE
  698. PD7 ------> FMC_NE1
  699. PG9 ------> FMC_NE2
  700. PG10 ------> FMC_NE3
  701. PG12 ------> FMC_NE4
  702. PG13 ------> FMC_A24
  703. PG14 ------> FMC_A25
  704. PE0 ------> FMC_NBL0
  705. PE1 ------> FMC_NBL1
  706. */
  707. GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
  708. |GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9
  709. |GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13
  710. |GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1;
  711. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  712. GPIO_InitStruct.Pull = GPIO_NOPULL;
  713. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  714. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  715. HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
  716. GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
  717. |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_13
  718. |GPIO_PIN_14|GPIO_PIN_15;
  719. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  720. GPIO_InitStruct.Pull = GPIO_NOPULL;
  721. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  722. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  723. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  724. GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
  725. |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_9|GPIO_PIN_10
  726. |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14;
  727. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  728. GPIO_InitStruct.Pull = GPIO_NOPULL;
  729. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  730. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  731. HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
  732. GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
  733. |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15
  734. |GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5
  735. |GPIO_PIN_7;
  736. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  737. GPIO_InitStruct.Pull = GPIO_NOPULL;
  738. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  739. GPIO_InitStruct.Alternate = GPIO_AF12_FMC;
  740. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  741. /* USER CODE BEGIN FMC_MspInit 1 */
  742. /* USER CODE END FMC_MspInit 1 */
  743. }
  744. void HAL_SRAM_MspInit(SRAM_HandleTypeDef* hsram){
  745. /* USER CODE BEGIN SRAM_MspInit 0 */
  746. /* USER CODE END SRAM_MspInit 0 */
  747. HAL_FMC_MspInit();
  748. /* USER CODE BEGIN SRAM_MspInit 1 */
  749. /* USER CODE END SRAM_MspInit 1 */
  750. }
  751. static uint32_t FMC_DeInitialized = 0;
  752. static void HAL_FMC_MspDeInit(void){
  753. /* USER CODE BEGIN FMC_MspDeInit 0 */
  754. /* USER CODE END FMC_MspDeInit 0 */
  755. if (FMC_DeInitialized) {
  756. return;
  757. }
  758. FMC_DeInitialized = 1;
  759. /* Peripheral clock enable */
  760. __HAL_RCC_FMC_CLK_DISABLE();
  761. /** FMC GPIO Configuration
  762. PE2 ------> FMC_A23
  763. PE3 ------> FMC_A19
  764. PE4 ------> FMC_A20
  765. PE5 ------> FMC_A21
  766. PE6 ------> FMC_A22
  767. PF0 ------> FMC_A0
  768. PF1 ------> FMC_A1
  769. PF2 ------> FMC_A2
  770. PF3 ------> FMC_A3
  771. PF4 ------> FMC_A4
  772. PF5 ------> FMC_A5
  773. PF12 ------> FMC_A6
  774. PF13 ------> FMC_A7
  775. PF14 ------> FMC_A8
  776. PF15 ------> FMC_A9
  777. PG0 ------> FMC_A10
  778. PG1 ------> FMC_A11
  779. PE7 ------> FMC_D4
  780. PE8 ------> FMC_D5
  781. PE9 ------> FMC_D6
  782. PE10 ------> FMC_D7
  783. PE11 ------> FMC_D8
  784. PE12 ------> FMC_D9
  785. PE13 ------> FMC_D10
  786. PE14 ------> FMC_D11
  787. PE15 ------> FMC_D12
  788. PD8 ------> FMC_D13
  789. PD9 ------> FMC_D14
  790. PD10 ------> FMC_D15
  791. PD11 ------> FMC_A16
  792. PD12 ------> FMC_A17
  793. PD13 ------> FMC_A18
  794. PD14 ------> FMC_D0
  795. PD15 ------> FMC_D1
  796. PG2 ------> FMC_A12
  797. PG3 ------> FMC_A13
  798. PG4 ------> FMC_A14
  799. PG5 ------> FMC_A15
  800. PD0 ------> FMC_D2
  801. PD1 ------> FMC_D3
  802. PD4 ------> FMC_NOE
  803. PD5 ------> FMC_NWE
  804. PD7 ------> FMC_NE1
  805. PG9 ------> FMC_NE2
  806. PG10 ------> FMC_NE3
  807. PG12 ------> FMC_NE4
  808. PG13 ------> FMC_A24
  809. PG14 ------> FMC_A25
  810. PE0 ------> FMC_NBL0
  811. PE1 ------> FMC_NBL1
  812. */
  813. HAL_GPIO_DeInit(GPIOE, GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
  814. |GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9
  815. |GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13
  816. |GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1);
  817. HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
  818. |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_13
  819. |GPIO_PIN_14|GPIO_PIN_15);
  820. HAL_GPIO_DeInit(GPIOG, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
  821. |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_9|GPIO_PIN_10
  822. |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14);
  823. HAL_GPIO_DeInit(GPIOD, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
  824. |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15
  825. |GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5
  826. |GPIO_PIN_7);
  827. /* USER CODE BEGIN FMC_MspDeInit 1 */
  828. /* USER CODE END FMC_MspDeInit 1 */
  829. }
  830. void HAL_SRAM_MspDeInit(SRAM_HandleTypeDef* hsram){
  831. /* USER CODE BEGIN SRAM_MspDeInit 0 */
  832. /* USER CODE END SRAM_MspDeInit 0 */
  833. HAL_FMC_MspDeInit();
  834. /* USER CODE BEGIN SRAM_MspDeInit 1 */
  835. /* USER CODE END SRAM_MspDeInit 1 */
  836. }
  837. /* USER CODE BEGIN 1 */
  838. /* USER CODE END 1 */