stm32f1xx_hal_msp.c 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875
  1. /* USER CODE BEGIN Header */
  2. /**
  3. ******************************************************************************
  4. * @file stm32f1xx_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) 2022 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. void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
  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_AFIO_CLK_ENABLE();
  53. __HAL_RCC_PWR_CLK_ENABLE();
  54. /* System interrupt init*/
  55. /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled
  56. */
  57. __HAL_AFIO_REMAP_SWJ_NOJTAG();
  58. /* USER CODE BEGIN MspInit 1 */
  59. /* USER CODE END MspInit 1 */
  60. }
  61. /**
  62. * @brief ADC MSP Initialization
  63. * This function configures the hardware resources used in this example
  64. * @param hadc: ADC handle pointer
  65. * @retval None
  66. */
  67. void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
  68. {
  69. GPIO_InitTypeDef GPIO_InitStruct = {0};
  70. if(hadc->Instance==ADC1)
  71. {
  72. /* USER CODE BEGIN ADC1_MspInit 0 */
  73. /* USER CODE END ADC1_MspInit 0 */
  74. /* Peripheral clock enable */
  75. __HAL_RCC_ADC1_CLK_ENABLE();
  76. __HAL_RCC_GPIOC_CLK_ENABLE();
  77. /**ADC1 GPIO Configuration
  78. PC0 ------> ADC1_IN10
  79. */
  80. GPIO_InitStruct.Pin = GPIO_PIN_0;
  81. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  82. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  83. /* USER CODE BEGIN ADC1_MspInit 1 */
  84. /* USER CODE END ADC1_MspInit 1 */
  85. }
  86. else if(hadc->Instance==ADC2)
  87. {
  88. /* USER CODE BEGIN ADC2_MspInit 0 */
  89. /* USER CODE END ADC2_MspInit 0 */
  90. /* Peripheral clock enable */
  91. __HAL_RCC_ADC2_CLK_ENABLE();
  92. __HAL_RCC_GPIOC_CLK_ENABLE();
  93. /**ADC2 GPIO Configuration
  94. PC0 ------> ADC2_IN10
  95. */
  96. GPIO_InitStruct.Pin = GPIO_PIN_0;
  97. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  98. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  99. /* USER CODE BEGIN ADC2_MspInit 1 */
  100. /* USER CODE END ADC2_MspInit 1 */
  101. }
  102. else if(hadc->Instance==ADC3)
  103. {
  104. /* USER CODE BEGIN ADC3_MspInit 0 */
  105. /* USER CODE END ADC3_MspInit 0 */
  106. /* Peripheral clock enable */
  107. __HAL_RCC_ADC3_CLK_ENABLE();
  108. __HAL_RCC_GPIOC_CLK_ENABLE();
  109. /**ADC3 GPIO Configuration
  110. PC0 ------> ADC3_IN10
  111. */
  112. GPIO_InitStruct.Pin = GPIO_PIN_0;
  113. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  114. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  115. /* USER CODE BEGIN ADC3_MspInit 1 */
  116. /* USER CODE END ADC3_MspInit 1 */
  117. }
  118. }
  119. /**
  120. * @brief ADC MSP De-Initialization
  121. * This function freeze the hardware resources used in this example
  122. * @param hadc: ADC handle pointer
  123. * @retval None
  124. */
  125. void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
  126. {
  127. if(hadc->Instance==ADC1)
  128. {
  129. /* USER CODE BEGIN ADC1_MspDeInit 0 */
  130. /* USER CODE END ADC1_MspDeInit 0 */
  131. /* Peripheral clock disable */
  132. __HAL_RCC_ADC1_CLK_DISABLE();
  133. /**ADC1 GPIO Configuration
  134. PC0 ------> ADC1_IN10
  135. */
  136. HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0);
  137. /* USER CODE BEGIN ADC1_MspDeInit 1 */
  138. /* USER CODE END ADC1_MspDeInit 1 */
  139. }
  140. else if(hadc->Instance==ADC2)
  141. {
  142. /* USER CODE BEGIN ADC2_MspDeInit 0 */
  143. /* USER CODE END ADC2_MspDeInit 0 */
  144. /* Peripheral clock disable */
  145. __HAL_RCC_ADC2_CLK_DISABLE();
  146. /**ADC2 GPIO Configuration
  147. PC0 ------> ADC2_IN10
  148. */
  149. HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0);
  150. /* USER CODE BEGIN ADC2_MspDeInit 1 */
  151. /* USER CODE END ADC2_MspDeInit 1 */
  152. }
  153. else if(hadc->Instance==ADC3)
  154. {
  155. /* USER CODE BEGIN ADC3_MspDeInit 0 */
  156. /* USER CODE END ADC3_MspDeInit 0 */
  157. /* Peripheral clock disable */
  158. __HAL_RCC_ADC3_CLK_DISABLE();
  159. /**ADC3 GPIO Configuration
  160. PC0 ------> ADC3_IN10
  161. */
  162. HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0);
  163. /* USER CODE BEGIN ADC3_MspDeInit 1 */
  164. /* USER CODE END ADC3_MspDeInit 1 */
  165. }
  166. }
  167. /**
  168. * @brief CAN MSP Initialization
  169. * This function configures the hardware resources used in this example
  170. * @param hcan: CAN handle pointer
  171. * @retval None
  172. */
  173. void HAL_CAN_MspInit(CAN_HandleTypeDef* hcan)
  174. {
  175. GPIO_InitTypeDef GPIO_InitStruct = {0};
  176. if(hcan->Instance==CAN1)
  177. {
  178. /* USER CODE BEGIN CAN1_MspInit 0 */
  179. /* USER CODE END CAN1_MspInit 0 */
  180. /* Peripheral clock enable */
  181. __HAL_RCC_CAN1_CLK_ENABLE();
  182. __HAL_RCC_GPIOB_CLK_ENABLE();
  183. /**CAN GPIO Configuration
  184. PB8 ------> CAN_RX
  185. PB9 ------> CAN_TX
  186. */
  187. GPIO_InitStruct.Pin = GPIO_PIN_8;
  188. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  189. GPIO_InitStruct.Pull = GPIO_NOPULL;
  190. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  191. GPIO_InitStruct.Pin = GPIO_PIN_9;
  192. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  193. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  194. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  195. __HAL_AFIO_REMAP_CAN1_2();
  196. /* USER CODE BEGIN CAN1_MspInit 1 */
  197. /* USER CODE END CAN1_MspInit 1 */
  198. }
  199. }
  200. /**
  201. * @brief CAN MSP De-Initialization
  202. * This function freeze the hardware resources used in this example
  203. * @param hcan: CAN handle pointer
  204. * @retval None
  205. */
  206. void HAL_CAN_MspDeInit(CAN_HandleTypeDef* hcan)
  207. {
  208. if(hcan->Instance==CAN1)
  209. {
  210. /* USER CODE BEGIN CAN1_MspDeInit 0 */
  211. /* USER CODE END CAN1_MspDeInit 0 */
  212. /* Peripheral clock disable */
  213. __HAL_RCC_CAN1_CLK_DISABLE();
  214. /**CAN GPIO Configuration
  215. PB8 ------> CAN_RX
  216. PB9 ------> CAN_TX
  217. */
  218. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_8|GPIO_PIN_9);
  219. /* USER CODE BEGIN CAN1_MspDeInit 1 */
  220. /* USER CODE END CAN1_MspDeInit 1 */
  221. }
  222. }
  223. /**
  224. * @brief I2C MSP Initialization
  225. * This function configures the hardware resources used in this example
  226. * @param hi2c: I2C handle pointer
  227. * @retval None
  228. */
  229. void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
  230. {
  231. GPIO_InitTypeDef GPIO_InitStruct = {0};
  232. if(hi2c->Instance==I2C1)
  233. {
  234. /* USER CODE BEGIN I2C1_MspInit 0 */
  235. /* USER CODE END I2C1_MspInit 0 */
  236. __HAL_RCC_GPIOB_CLK_ENABLE();
  237. /**I2C1 GPIO Configuration
  238. PB6 ------> I2C1_SCL
  239. PB7 ------> I2C1_SDA
  240. */
  241. GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
  242. GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
  243. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  244. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  245. /* Peripheral clock enable */
  246. __HAL_RCC_I2C1_CLK_ENABLE();
  247. /* USER CODE BEGIN I2C1_MspInit 1 */
  248. /* USER CODE END I2C1_MspInit 1 */
  249. }
  250. }
  251. /**
  252. * @brief I2C MSP De-Initialization
  253. * This function freeze the hardware resources used in this example
  254. * @param hi2c: I2C handle pointer
  255. * @retval None
  256. */
  257. void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c)
  258. {
  259. if(hi2c->Instance==I2C1)
  260. {
  261. /* USER CODE BEGIN I2C1_MspDeInit 0 */
  262. /* USER CODE END I2C1_MspDeInit 0 */
  263. /* Peripheral clock disable */
  264. __HAL_RCC_I2C1_CLK_DISABLE();
  265. /**I2C1 GPIO Configuration
  266. PB6 ------> I2C1_SCL
  267. PB7 ------> I2C1_SDA
  268. */
  269. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6);
  270. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7);
  271. /* USER CODE BEGIN I2C1_MspDeInit 1 */
  272. /* USER CODE END I2C1_MspDeInit 1 */
  273. }
  274. }
  275. /**
  276. * @brief RTC MSP Initialization
  277. * This function configures the hardware resources used in this example
  278. * @param hrtc: RTC handle pointer
  279. * @retval None
  280. */
  281. void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
  282. {
  283. if(hrtc->Instance==RTC)
  284. {
  285. /* USER CODE BEGIN RTC_MspInit 0 */
  286. /* USER CODE END RTC_MspInit 0 */
  287. HAL_PWR_EnableBkUpAccess();
  288. /* Enable BKP CLK enable for backup registers */
  289. __HAL_RCC_BKP_CLK_ENABLE();
  290. /* Peripheral clock enable */
  291. __HAL_RCC_RTC_ENABLE();
  292. /* USER CODE BEGIN RTC_MspInit 1 */
  293. /* USER CODE END RTC_MspInit 1 */
  294. }
  295. }
  296. /**
  297. * @brief RTC MSP De-Initialization
  298. * This function freeze the hardware resources used in this example
  299. * @param hrtc: RTC handle pointer
  300. * @retval None
  301. */
  302. void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
  303. {
  304. if(hrtc->Instance==RTC)
  305. {
  306. /* USER CODE BEGIN RTC_MspDeInit 0 */
  307. /* USER CODE END RTC_MspDeInit 0 */
  308. /* Peripheral clock disable */
  309. __HAL_RCC_RTC_DISABLE();
  310. /* USER CODE BEGIN RTC_MspDeInit 1 */
  311. /* USER CODE END RTC_MspDeInit 1 */
  312. }
  313. }
  314. /**
  315. * @brief SD MSP Initialization
  316. * This function configures the hardware resources used in this example
  317. * @param hsd: SD handle pointer
  318. * @retval None
  319. */
  320. void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
  321. {
  322. GPIO_InitTypeDef GPIO_InitStruct = {0};
  323. if(hsd->Instance==SDIO)
  324. {
  325. /* USER CODE BEGIN SDIO_MspInit 0 */
  326. /* USER CODE END SDIO_MspInit 0 */
  327. /* Peripheral clock enable */
  328. __HAL_RCC_SDIO_CLK_ENABLE();
  329. __HAL_RCC_GPIOC_CLK_ENABLE();
  330. __HAL_RCC_GPIOD_CLK_ENABLE();
  331. /**SDIO GPIO Configuration
  332. PC8 ------> SDIO_D0
  333. PC9 ------> SDIO_D1
  334. PC10 ------> SDIO_D2
  335. PC11 ------> SDIO_D3
  336. PC12 ------> SDIO_CK
  337. PD2 ------> SDIO_CMD
  338. */
  339. GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
  340. |GPIO_PIN_12;
  341. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  342. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  343. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  344. GPIO_InitStruct.Pin = GPIO_PIN_2;
  345. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  346. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  347. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  348. /* USER CODE BEGIN SDIO_MspInit 1 */
  349. /* USER CODE END SDIO_MspInit 1 */
  350. }
  351. }
  352. /**
  353. * @brief SD MSP De-Initialization
  354. * This function freeze the hardware resources used in this example
  355. * @param hsd: SD handle pointer
  356. * @retval None
  357. */
  358. void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
  359. {
  360. if(hsd->Instance==SDIO)
  361. {
  362. /* USER CODE BEGIN SDIO_MspDeInit 0 */
  363. /* USER CODE END SDIO_MspDeInit 0 */
  364. /* Peripheral clock disable */
  365. __HAL_RCC_SDIO_CLK_DISABLE();
  366. /**SDIO GPIO Configuration
  367. PC8 ------> SDIO_D0
  368. PC9 ------> SDIO_D1
  369. PC10 ------> SDIO_D2
  370. PC11 ------> SDIO_D3
  371. PC12 ------> SDIO_CK
  372. PD2 ------> SDIO_CMD
  373. */
  374. HAL_GPIO_DeInit(GPIOC, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
  375. |GPIO_PIN_12);
  376. HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
  377. /* USER CODE BEGIN SDIO_MspDeInit 1 */
  378. /* USER CODE END SDIO_MspDeInit 1 */
  379. }
  380. }
  381. /**
  382. * @brief SPI MSP Initialization
  383. * This function configures the hardware resources used in this example
  384. * @param hspi: SPI handle pointer
  385. * @retval None
  386. */
  387. void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
  388. {
  389. GPIO_InitTypeDef GPIO_InitStruct = {0};
  390. if(hspi->Instance==SPI1)
  391. {
  392. /* USER CODE BEGIN SPI1_MspInit 0 */
  393. /* USER CODE END SPI1_MspInit 0 */
  394. /* Peripheral clock enable */
  395. __HAL_RCC_SPI1_CLK_ENABLE();
  396. __HAL_RCC_GPIOA_CLK_ENABLE();
  397. /**SPI1 GPIO Configuration
  398. PA5 ------> SPI1_SCK
  399. PA6 ------> SPI1_MISO
  400. PA7 ------> SPI1_MOSI
  401. */
  402. GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_7;
  403. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  404. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  405. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  406. GPIO_InitStruct.Pin = GPIO_PIN_6;
  407. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  408. GPIO_InitStruct.Pull = GPIO_NOPULL;
  409. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  410. /* USER CODE BEGIN SPI1_MspInit 1 */
  411. /* USER CODE END SPI1_MspInit 1 */
  412. }
  413. else if(hspi->Instance==SPI2)
  414. {
  415. /* USER CODE BEGIN SPI2_MspInit 0 */
  416. /* USER CODE END SPI2_MspInit 0 */
  417. /* Peripheral clock enable */
  418. __HAL_RCC_SPI2_CLK_ENABLE();
  419. __HAL_RCC_GPIOB_CLK_ENABLE();
  420. /**SPI2 GPIO Configuration
  421. PB13 ------> SPI2_SCK
  422. PB14 ------> SPI2_MISO
  423. PB15 ------> SPI2_MOSI
  424. */
  425. GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_15;
  426. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  427. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  428. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  429. GPIO_InitStruct.Pin = GPIO_PIN_14;
  430. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  431. GPIO_InitStruct.Pull = GPIO_NOPULL;
  432. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  433. /* USER CODE BEGIN SPI2_MspInit 1 */
  434. /* USER CODE END SPI2_MspInit 1 */
  435. }
  436. }
  437. /**
  438. * @brief SPI MSP De-Initialization
  439. * This function freeze the hardware resources used in this example
  440. * @param hspi: SPI handle pointer
  441. * @retval None
  442. */
  443. void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
  444. {
  445. if(hspi->Instance==SPI1)
  446. {
  447. /* USER CODE BEGIN SPI1_MspDeInit 0 */
  448. /* USER CODE END SPI1_MspDeInit 0 */
  449. /* Peripheral clock disable */
  450. __HAL_RCC_SPI1_CLK_DISABLE();
  451. /**SPI1 GPIO Configuration
  452. PA5 ------> SPI1_SCK
  453. PA6 ------> SPI1_MISO
  454. PA7 ------> SPI1_MOSI
  455. */
  456. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
  457. /* USER CODE BEGIN SPI1_MspDeInit 1 */
  458. /* USER CODE END SPI1_MspDeInit 1 */
  459. }
  460. else if(hspi->Instance==SPI2)
  461. {
  462. /* USER CODE BEGIN SPI2_MspDeInit 0 */
  463. /* USER CODE END SPI2_MspDeInit 0 */
  464. /* Peripheral clock disable */
  465. __HAL_RCC_SPI2_CLK_DISABLE();
  466. /**SPI2 GPIO Configuration
  467. PB13 ------> SPI2_SCK
  468. PB14 ------> SPI2_MISO
  469. PB15 ------> SPI2_MOSI
  470. */
  471. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
  472. /* USER CODE BEGIN SPI2_MspDeInit 1 */
  473. /* USER CODE END SPI2_MspDeInit 1 */
  474. }
  475. }
  476. /**
  477. * @brief TIM_Base MSP Initialization
  478. * This function configures the hardware resources used in this example
  479. * @param htim_base: TIM_Base handle pointer
  480. * @retval None
  481. */
  482. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
  483. {
  484. if(htim_base->Instance==TIM2)
  485. {
  486. /* USER CODE BEGIN TIM2_MspInit 0 */
  487. /* USER CODE END TIM2_MspInit 0 */
  488. /* Peripheral clock enable */
  489. __HAL_RCC_TIM2_CLK_ENABLE();
  490. /* USER CODE BEGIN TIM2_MspInit 1 */
  491. /* USER CODE END TIM2_MspInit 1 */
  492. }
  493. else if(htim_base->Instance==TIM3)
  494. {
  495. /* USER CODE BEGIN TIM3_MspInit 0 */
  496. /* USER CODE END TIM3_MspInit 0 */
  497. /* Peripheral clock enable */
  498. __HAL_RCC_TIM3_CLK_ENABLE();
  499. /* USER CODE BEGIN TIM3_MspInit 1 */
  500. /* USER CODE END TIM3_MspInit 1 */
  501. }
  502. else if(htim_base->Instance==TIM4)
  503. {
  504. /* USER CODE BEGIN TIM4_MspInit 0 */
  505. /* USER CODE END TIM4_MspInit 0 */
  506. /* Peripheral clock enable */
  507. __HAL_RCC_TIM4_CLK_ENABLE();
  508. /* USER CODE BEGIN TIM4_MspInit 1 */
  509. /* USER CODE END TIM4_MspInit 1 */
  510. }
  511. }
  512. void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
  513. {
  514. GPIO_InitTypeDef GPIO_InitStruct = {0};
  515. if(htim->Instance==TIM3)
  516. {
  517. /* USER CODE BEGIN TIM3_MspPostInit 0 */
  518. /* USER CODE END TIM3_MspPostInit 0 */
  519. __HAL_RCC_GPIOB_CLK_ENABLE();
  520. /**TIM3 GPIO Configuration
  521. PB0 ------> TIM3_CH3
  522. PB1 ------> TIM3_CH4
  523. PB5 ------> TIM3_CH2
  524. */
  525. GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_5;
  526. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  527. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  528. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  529. __HAL_AFIO_REMAP_TIM3_PARTIAL();
  530. /* USER CODE BEGIN TIM3_MspPostInit 1 */
  531. /* USER CODE END TIM3_MspPostInit 1 */
  532. }
  533. }
  534. /**
  535. * @brief TIM_Base MSP De-Initialization
  536. * This function freeze the hardware resources used in this example
  537. * @param htim_base: TIM_Base handle pointer
  538. * @retval None
  539. */
  540. void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
  541. {
  542. if(htim_base->Instance==TIM2)
  543. {
  544. /* USER CODE BEGIN TIM2_MspDeInit 0 */
  545. /* USER CODE END TIM2_MspDeInit 0 */
  546. /* Peripheral clock disable */
  547. __HAL_RCC_TIM2_CLK_DISABLE();
  548. /* USER CODE BEGIN TIM2_MspDeInit 1 */
  549. /* USER CODE END TIM2_MspDeInit 1 */
  550. }
  551. else if(htim_base->Instance==TIM3)
  552. {
  553. /* USER CODE BEGIN TIM3_MspDeInit 0 */
  554. /* USER CODE END TIM3_MspDeInit 0 */
  555. /* Peripheral clock disable */
  556. __HAL_RCC_TIM3_CLK_DISABLE();
  557. /* USER CODE BEGIN TIM3_MspDeInit 1 */
  558. /* USER CODE END TIM3_MspDeInit 1 */
  559. }
  560. else if(htim_base->Instance==TIM4)
  561. {
  562. /* USER CODE BEGIN TIM4_MspDeInit 0 */
  563. /* USER CODE END TIM4_MspDeInit 0 */
  564. /* Peripheral clock disable */
  565. __HAL_RCC_TIM4_CLK_DISABLE();
  566. /* USER CODE BEGIN TIM4_MspDeInit 1 */
  567. /* USER CODE END TIM4_MspDeInit 1 */
  568. }
  569. }
  570. /**
  571. * @brief UART MSP Initialization
  572. * This function configures the hardware resources used in this example
  573. * @param huart: UART handle pointer
  574. * @retval None
  575. */
  576. void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  577. {
  578. GPIO_InitTypeDef GPIO_InitStruct = {0};
  579. if(huart->Instance==USART1)
  580. {
  581. /* USER CODE BEGIN USART1_MspInit 0 */
  582. /* USER CODE END USART1_MspInit 0 */
  583. /* Peripheral clock enable */
  584. __HAL_RCC_USART1_CLK_ENABLE();
  585. __HAL_RCC_GPIOA_CLK_ENABLE();
  586. /**USART1 GPIO Configuration
  587. PA9 ------> USART1_TX
  588. PA10 ------> USART1_RX
  589. */
  590. GPIO_InitStruct.Pin = GPIO_PIN_9;
  591. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  592. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  593. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  594. GPIO_InitStruct.Pin = GPIO_PIN_10;
  595. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  596. GPIO_InitStruct.Pull = GPIO_NOPULL;
  597. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  598. /* USER CODE BEGIN USART1_MspInit 1 */
  599. /* USER CODE END USART1_MspInit 1 */
  600. }
  601. else if(huart->Instance==USART2)
  602. {
  603. /* USER CODE BEGIN USART2_MspInit 0 */
  604. /* USER CODE END USART2_MspInit 0 */
  605. /* Peripheral clock enable */
  606. __HAL_RCC_USART2_CLK_ENABLE();
  607. __HAL_RCC_GPIOA_CLK_ENABLE();
  608. /**USART2 GPIO Configuration
  609. PA2 ------> USART2_TX
  610. PA3 ------> USART2_RX
  611. */
  612. GPIO_InitStruct.Pin = GPIO_PIN_2;
  613. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  614. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  615. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  616. GPIO_InitStruct.Pin = GPIO_PIN_3;
  617. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  618. GPIO_InitStruct.Pull = GPIO_NOPULL;
  619. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  620. /* USER CODE BEGIN USART2_MspInit 1 */
  621. /* USER CODE END USART2_MspInit 1 */
  622. }
  623. else if(huart->Instance==USART3)
  624. {
  625. /* USER CODE BEGIN USART3_MspInit 0 */
  626. /* USER CODE END USART3_MspInit 0 */
  627. /* Peripheral clock enable */
  628. __HAL_RCC_USART3_CLK_ENABLE();
  629. __HAL_RCC_GPIOB_CLK_ENABLE();
  630. /**USART3 GPIO Configuration
  631. PB10 ------> USART3_TX
  632. PB11 ------> USART3_RX
  633. */
  634. GPIO_InitStruct.Pin = GPIO_PIN_10;
  635. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  636. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  637. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  638. GPIO_InitStruct.Pin = GPIO_PIN_11;
  639. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  640. GPIO_InitStruct.Pull = GPIO_NOPULL;
  641. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  642. /* USER CODE BEGIN USART3_MspInit 1 */
  643. /* USER CODE END USART3_MspInit 1 */
  644. }
  645. }
  646. /**
  647. * @brief UART MSP De-Initialization
  648. * This function freeze the hardware resources used in this example
  649. * @param huart: UART handle pointer
  650. * @retval None
  651. */
  652. void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
  653. {
  654. if(huart->Instance==USART1)
  655. {
  656. /* USER CODE BEGIN USART1_MspDeInit 0 */
  657. /* USER CODE END USART1_MspDeInit 0 */
  658. /* Peripheral clock disable */
  659. __HAL_RCC_USART1_CLK_DISABLE();
  660. /**USART1 GPIO Configuration
  661. PA9 ------> USART1_TX
  662. PA10 ------> USART1_RX
  663. */
  664. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
  665. /* USER CODE BEGIN USART1_MspDeInit 1 */
  666. /* USER CODE END USART1_MspDeInit 1 */
  667. }
  668. else if(huart->Instance==USART2)
  669. {
  670. /* USER CODE BEGIN USART2_MspDeInit 0 */
  671. /* USER CODE END USART2_MspDeInit 0 */
  672. /* Peripheral clock disable */
  673. __HAL_RCC_USART2_CLK_DISABLE();
  674. /**USART2 GPIO Configuration
  675. PA2 ------> USART2_TX
  676. PA3 ------> USART2_RX
  677. */
  678. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
  679. /* USER CODE BEGIN USART2_MspDeInit 1 */
  680. /* USER CODE END USART2_MspDeInit 1 */
  681. }
  682. else if(huart->Instance==USART3)
  683. {
  684. /* USER CODE BEGIN USART3_MspDeInit 0 */
  685. /* USER CODE END USART3_MspDeInit 0 */
  686. /* Peripheral clock disable */
  687. __HAL_RCC_USART3_CLK_DISABLE();
  688. /**USART3 GPIO Configuration
  689. PB10 ------> USART3_TX
  690. PB11 ------> USART3_RX
  691. */
  692. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11);
  693. /* USER CODE BEGIN USART3_MspDeInit 1 */
  694. /* USER CODE END USART3_MspDeInit 1 */
  695. }
  696. }
  697. /* USER CODE BEGIN 1 */
  698. /* USER CODE END 1 */