stm32h5xx_hal_msp.c 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723
  1. /* USER CODE BEGIN Header */
  2. /**
  3. ******************************************************************************
  4. * @file stm32h5xx_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) 2024 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. #include <drv_common.h>
  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. void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
  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. /* System interrupt init*/
  54. /* USER CODE BEGIN MspInit 1 */
  55. /* USER CODE END MspInit 1 */
  56. }
  57. static uint32_t HAL_RCC_ADC_CLK_ENABLED=0;
  58. /**
  59. * @brief ADC MSP Initialization
  60. * This function configures the hardware resources used in this example
  61. * @param hadc: ADC handle pointer
  62. * @retval None
  63. */
  64. void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
  65. {
  66. GPIO_InitTypeDef GPIO_InitStruct = {0};
  67. RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
  68. if(hadc->Instance==ADC1)
  69. {
  70. /* USER CODE BEGIN ADC1_MspInit 0 */
  71. /* USER CODE END ADC1_MspInit 0 */
  72. /** Initializes the peripherals clock
  73. */
  74. PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_ADCDAC;
  75. PeriphClkInitStruct.AdcDacClockSelection = RCC_ADCDACCLKSOURCE_HCLK;
  76. if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
  77. {
  78. Error_Handler();
  79. }
  80. /* Peripheral clock enable */
  81. HAL_RCC_ADC_CLK_ENABLED++;
  82. if(HAL_RCC_ADC_CLK_ENABLED==1){
  83. __HAL_RCC_ADC_CLK_ENABLE();
  84. }
  85. __HAL_RCC_GPIOA_CLK_ENABLE();
  86. __HAL_RCC_GPIOF_CLK_ENABLE();
  87. /**ADC1 GPIO Configuration
  88. PA4 ------> ADC1_INP18
  89. PF11 ------> ADC1_INP2
  90. */
  91. GPIO_InitStruct.Pin = VBUS_SENSE_Pin;
  92. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  93. GPIO_InitStruct.Pull = GPIO_NOPULL;
  94. HAL_GPIO_Init(VBUS_SENSE_GPIO_Port, &GPIO_InitStruct);
  95. GPIO_InitStruct.Pin = GPIO_PIN_11;
  96. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  97. GPIO_InitStruct.Pull = GPIO_NOPULL;
  98. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  99. /* USER CODE BEGIN ADC1_MspInit 1 */
  100. /* USER CODE END ADC1_MspInit 1 */
  101. }
  102. else if(hadc->Instance==ADC2)
  103. {
  104. /* USER CODE BEGIN ADC2_MspInit 0 */
  105. /* USER CODE END ADC2_MspInit 0 */
  106. /** Initializes the peripherals clock
  107. */
  108. PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_ADCDAC;
  109. PeriphClkInitStruct.AdcDacClockSelection = RCC_ADCDACCLKSOURCE_HCLK;
  110. if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
  111. {
  112. Error_Handler();
  113. }
  114. /* Peripheral clock enable */
  115. HAL_RCC_ADC_CLK_ENABLED++;
  116. if(HAL_RCC_ADC_CLK_ENABLED==1){
  117. __HAL_RCC_ADC_CLK_ENABLE();
  118. }
  119. __HAL_RCC_GPIOC_CLK_ENABLE();
  120. __HAL_RCC_GPIOA_CLK_ENABLE();
  121. __HAL_RCC_GPIOB_CLK_ENABLE();
  122. /**ADC2 GPIO Configuration
  123. PC0 ------> ADC2_INP10
  124. PC2 ------> ADC2_INP12
  125. PC3 ------> ADC2_INP13
  126. PA6 ------> ADC2_INP3
  127. PB1 ------> ADC2_INP5
  128. */
  129. GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3;
  130. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  131. GPIO_InitStruct.Pull = GPIO_NOPULL;
  132. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  133. GPIO_InitStruct.Pin = GPIO_PIN_6;
  134. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  135. GPIO_InitStruct.Pull = GPIO_NOPULL;
  136. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  137. GPIO_InitStruct.Pin = GPIO_PIN_1;
  138. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  139. GPIO_InitStruct.Pull = GPIO_NOPULL;
  140. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  141. /* USER CODE BEGIN ADC2_MspInit 1 */
  142. /* USER CODE END ADC2_MspInit 1 */
  143. }
  144. }
  145. /**
  146. * @brief ADC MSP De-Initialization
  147. * This function freeze the hardware resources used in this example
  148. * @param hadc: ADC handle pointer
  149. * @retval None
  150. */
  151. void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
  152. {
  153. if(hadc->Instance==ADC1)
  154. {
  155. /* USER CODE BEGIN ADC1_MspDeInit 0 */
  156. /* USER CODE END ADC1_MspDeInit 0 */
  157. /* Peripheral clock disable */
  158. HAL_RCC_ADC_CLK_ENABLED--;
  159. if(HAL_RCC_ADC_CLK_ENABLED==0){
  160. __HAL_RCC_ADC_CLK_DISABLE();
  161. }
  162. /**ADC1 GPIO Configuration
  163. PA4 ------> ADC1_INP18
  164. PF11 ------> ADC1_INP2
  165. */
  166. HAL_GPIO_DeInit(VBUS_SENSE_GPIO_Port, VBUS_SENSE_Pin);
  167. HAL_GPIO_DeInit(GPIOF, GPIO_PIN_11);
  168. /* USER CODE BEGIN ADC1_MspDeInit 1 */
  169. /* USER CODE END ADC1_MspDeInit 1 */
  170. }
  171. else if(hadc->Instance==ADC2)
  172. {
  173. /* USER CODE BEGIN ADC2_MspDeInit 0 */
  174. /* USER CODE END ADC2_MspDeInit 0 */
  175. /* Peripheral clock disable */
  176. HAL_RCC_ADC_CLK_ENABLED--;
  177. if(HAL_RCC_ADC_CLK_ENABLED==0){
  178. __HAL_RCC_ADC_CLK_DISABLE();
  179. }
  180. /**ADC2 GPIO Configuration
  181. PC0 ------> ADC2_INP10
  182. PC2 ------> ADC2_INP12
  183. PC3 ------> ADC2_INP13
  184. PA6 ------> ADC2_INP3
  185. PB1 ------> ADC2_INP5
  186. */
  187. HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3);
  188. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_6);
  189. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_1);
  190. /* USER CODE BEGIN ADC2_MspDeInit 1 */
  191. /* USER CODE END ADC2_MspDeInit 1 */
  192. }
  193. }
  194. /**
  195. * @brief ETH MSP Initialization
  196. * This function configures the hardware resources used in this example
  197. * @param heth: ETH handle pointer
  198. * @retval None
  199. */
  200. void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
  201. {
  202. GPIO_InitTypeDef GPIO_InitStruct = {0};
  203. if(heth->Instance==ETH)
  204. {
  205. /* USER CODE BEGIN ETH_MspInit 0 */
  206. /* USER CODE END ETH_MspInit 0 */
  207. /* Peripheral clock enable */
  208. __HAL_RCC_ETH_CLK_ENABLE();
  209. __HAL_RCC_ETHTX_CLK_ENABLE();
  210. __HAL_RCC_ETHRX_CLK_ENABLE();
  211. __HAL_RCC_GPIOC_CLK_ENABLE();
  212. __HAL_RCC_GPIOA_CLK_ENABLE();
  213. __HAL_RCC_GPIOB_CLK_ENABLE();
  214. __HAL_RCC_GPIOG_CLK_ENABLE();
  215. /**ETH GPIO Configuration
  216. PC1 ------> ETH_MDC
  217. PA1 ------> ETH_REF_CLK
  218. PA2 ------> ETH_MDIO
  219. PA7 ------> ETH_CRS_DV
  220. PC4 ------> ETH_RXD0
  221. PC5 ------> ETH_RXD1
  222. PB15 ------> ETH_TXD1
  223. PG11 ------> ETH_TX_EN
  224. PG13 ------> ETH_TXD0
  225. */
  226. GPIO_InitStruct.Pin = RMII_MDC_Pin|RMII_RXD0_Pin|RMII_RXD1_Pin;
  227. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  228. GPIO_InitStruct.Pull = GPIO_NOPULL;
  229. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  230. GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
  231. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  232. GPIO_InitStruct.Pin = RMII_REF_CLK_Pin|RMII_MDIO_Pin|RMII_CRS_DV_Pin;
  233. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  234. GPIO_InitStruct.Pull = GPIO_NOPULL;
  235. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  236. GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
  237. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  238. GPIO_InitStruct.Pin = RMII_TXD1_Pin;
  239. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  240. GPIO_InitStruct.Pull = GPIO_NOPULL;
  241. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  242. GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
  243. HAL_GPIO_Init(RMII_TXD1_GPIO_Port, &GPIO_InitStruct);
  244. GPIO_InitStruct.Pin = RMII_TXT_EN_Pin|RMI_TXD0_Pin;
  245. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  246. GPIO_InitStruct.Pull = GPIO_NOPULL;
  247. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  248. GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
  249. HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
  250. /* USER CODE BEGIN ETH_MspInit 1 */
  251. /* USER CODE END ETH_MspInit 1 */
  252. }
  253. }
  254. /**
  255. * @brief ETH MSP De-Initialization
  256. * This function freeze the hardware resources used in this example
  257. * @param heth: ETH handle pointer
  258. * @retval None
  259. */
  260. void HAL_ETH_MspDeInit(ETH_HandleTypeDef* heth)
  261. {
  262. if(heth->Instance==ETH)
  263. {
  264. /* USER CODE BEGIN ETH_MspDeInit 0 */
  265. /* USER CODE END ETH_MspDeInit 0 */
  266. /* Peripheral clock disable */
  267. __HAL_RCC_ETH_CLK_DISABLE();
  268. __HAL_RCC_ETHTX_CLK_DISABLE();
  269. __HAL_RCC_ETHRX_CLK_DISABLE();
  270. /**ETH GPIO Configuration
  271. PC1 ------> ETH_MDC
  272. PA1 ------> ETH_REF_CLK
  273. PA2 ------> ETH_MDIO
  274. PA7 ------> ETH_CRS_DV
  275. PC4 ------> ETH_RXD0
  276. PC5 ------> ETH_RXD1
  277. PB15 ------> ETH_TXD1
  278. PG11 ------> ETH_TX_EN
  279. PG13 ------> ETH_TXD0
  280. */
  281. HAL_GPIO_DeInit(GPIOC, RMII_MDC_Pin|RMII_RXD0_Pin|RMII_RXD1_Pin);
  282. HAL_GPIO_DeInit(GPIOA, RMII_REF_CLK_Pin|RMII_MDIO_Pin|RMII_CRS_DV_Pin);
  283. HAL_GPIO_DeInit(RMII_TXD1_GPIO_Port, RMII_TXD1_Pin);
  284. HAL_GPIO_DeInit(GPIOG, RMII_TXT_EN_Pin|RMI_TXD0_Pin);
  285. /* USER CODE BEGIN ETH_MspDeInit 1 */
  286. /* USER CODE END ETH_MspDeInit 1 */
  287. }
  288. }
  289. /**
  290. * @brief UART MSP Initialization
  291. * This function configures the hardware resources used in this example
  292. * @param huart: UART handle pointer
  293. * @retval None
  294. */
  295. void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  296. {
  297. GPIO_InitTypeDef GPIO_InitStruct = {0};
  298. RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
  299. if(huart->Instance==LPUART1)
  300. {
  301. /* USER CODE BEGIN LPUART1_MspInit 0 */
  302. /* USER CODE END LPUART1_MspInit 0 */
  303. /** Initializes the peripherals clock
  304. */
  305. PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LPUART1;
  306. PeriphClkInitStruct.Lpuart1ClockSelection = RCC_LPUART1CLKSOURCE_PCLK3;
  307. if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
  308. {
  309. Error_Handler();
  310. }
  311. /* Peripheral clock enable */
  312. __HAL_RCC_LPUART1_CLK_ENABLE();
  313. __HAL_RCC_GPIOB_CLK_ENABLE();
  314. /**LPUART1 GPIO Configuration
  315. PB6 ------> LPUART1_TX
  316. PB7 ------> LPUART1_RX
  317. */
  318. GPIO_InitStruct.Pin = ARD_D1_TX_Pin|ARD_D0_RX_Pin;
  319. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  320. GPIO_InitStruct.Pull = GPIO_NOPULL;
  321. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  322. GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1;
  323. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  324. /* USER CODE BEGIN LPUART1_MspInit 1 */
  325. /* USER CODE END LPUART1_MspInit 1 */
  326. }
  327. else if(huart->Instance==USART3)
  328. {
  329. /* USER CODE BEGIN USART3_MspInit 0 */
  330. /* USER CODE END USART3_MspInit 0 */
  331. /** Initializes the peripherals clock
  332. */
  333. PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART3;
  334. PeriphClkInitStruct.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1;
  335. if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
  336. {
  337. Error_Handler();
  338. }
  339. /* Peripheral clock enable */
  340. __HAL_RCC_USART3_CLK_ENABLE();
  341. __HAL_RCC_GPIOD_CLK_ENABLE();
  342. /**USART3 GPIO Configuration
  343. PD8 ------> USART3_TX
  344. PD9 ------> USART3_RX
  345. */
  346. GPIO_InitStruct.Pin = T_VCP_TX_Pin|T_VCP_RX_Pin;
  347. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  348. GPIO_InitStruct.Pull = GPIO_NOPULL;
  349. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  350. GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
  351. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  352. /* USER CODE BEGIN USART3_MspInit 1 */
  353. /* USER CODE END USART3_MspInit 1 */
  354. }
  355. }
  356. /**
  357. * @brief UART MSP De-Initialization
  358. * This function freeze the hardware resources used in this example
  359. * @param huart: UART handle pointer
  360. * @retval None
  361. */
  362. void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
  363. {
  364. if(huart->Instance==LPUART1)
  365. {
  366. /* USER CODE BEGIN LPUART1_MspDeInit 0 */
  367. /* USER CODE END LPUART1_MspDeInit 0 */
  368. /* Peripheral clock disable */
  369. __HAL_RCC_LPUART1_CLK_DISABLE();
  370. /**LPUART1 GPIO Configuration
  371. PB6 ------> LPUART1_TX
  372. PB7 ------> LPUART1_RX
  373. */
  374. HAL_GPIO_DeInit(GPIOB, ARD_D1_TX_Pin|ARD_D0_RX_Pin);
  375. /* USER CODE BEGIN LPUART1_MspDeInit 1 */
  376. /* USER CODE END LPUART1_MspDeInit 1 */
  377. }
  378. else if(huart->Instance==USART3)
  379. {
  380. /* USER CODE BEGIN USART3_MspDeInit 0 */
  381. /* USER CODE END USART3_MspDeInit 0 */
  382. /* Peripheral clock disable */
  383. __HAL_RCC_USART3_CLK_DISABLE();
  384. /**USART3 GPIO Configuration
  385. PD8 ------> USART3_TX
  386. PD9 ------> USART3_RX
  387. */
  388. HAL_GPIO_DeInit(GPIOD, T_VCP_TX_Pin|T_VCP_RX_Pin);
  389. /* USER CODE BEGIN USART3_MspDeInit 1 */
  390. /* USER CODE END USART3_MspDeInit 1 */
  391. }
  392. }
  393. /**
  394. * @brief TIM_PWM MSP Initialization
  395. * This function configures the hardware resources used in this example
  396. * @param htim_pwm: TIM_PWM handle pointer
  397. * @retval None
  398. */
  399. void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
  400. {
  401. if(htim_pwm->Instance==TIM1)
  402. {
  403. /* USER CODE BEGIN TIM1_MspInit 0 */
  404. /* USER CODE END TIM1_MspInit 0 */
  405. /* Peripheral clock enable */
  406. __HAL_RCC_TIM1_CLK_ENABLE();
  407. /* USER CODE BEGIN TIM1_MspInit 1 */
  408. /* USER CODE END TIM1_MspInit 1 */
  409. }
  410. else if(htim_pwm->Instance==TIM3)
  411. {
  412. /* USER CODE BEGIN TIM3_MspInit 0 */
  413. /* USER CODE END TIM3_MspInit 0 */
  414. /* Peripheral clock enable */
  415. __HAL_RCC_TIM3_CLK_ENABLE();
  416. /* USER CODE BEGIN TIM3_MspInit 1 */
  417. /* USER CODE END TIM3_MspInit 1 */
  418. }
  419. else if(htim_pwm->Instance==TIM4)
  420. {
  421. /* USER CODE BEGIN TIM4_MspInit 0 */
  422. /* USER CODE END TIM4_MspInit 0 */
  423. /* Peripheral clock enable */
  424. __HAL_RCC_TIM4_CLK_ENABLE();
  425. /* USER CODE BEGIN TIM4_MspInit 1 */
  426. /* USER CODE END TIM4_MspInit 1 */
  427. }
  428. }
  429. void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
  430. {
  431. GPIO_InitTypeDef GPIO_InitStruct = {0};
  432. if(htim->Instance==TIM1)
  433. {
  434. /* USER CODE BEGIN TIM1_MspPostInit 0 */
  435. /* USER CODE END TIM1_MspPostInit 0 */
  436. __HAL_RCC_GPIOE_CLK_ENABLE();
  437. /**TIM1 GPIO Configuration
  438. PE9 ------> TIM1_CH1
  439. PE11 ------> TIM1_CH2
  440. PE13 ------> TIM1_CH3
  441. */
  442. GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_11|GPIO_PIN_13;
  443. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  444. GPIO_InitStruct.Pull = GPIO_NOPULL;
  445. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  446. GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
  447. HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
  448. /* USER CODE BEGIN TIM1_MspPostInit 1 */
  449. /* USER CODE END TIM1_MspPostInit 1 */
  450. }
  451. else if(htim->Instance==TIM3)
  452. {
  453. /* USER CODE BEGIN TIM3_MspPostInit 0 */
  454. /* USER CODE END TIM3_MspPostInit 0 */
  455. __HAL_RCC_GPIOB_CLK_ENABLE();
  456. /**TIM3 GPIO Configuration
  457. PB5 ------> TIM3_CH2
  458. */
  459. GPIO_InitStruct.Pin = GPIO_PIN_5;
  460. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  461. GPIO_InitStruct.Pull = GPIO_NOPULL;
  462. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  463. GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
  464. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  465. /* USER CODE BEGIN TIM3_MspPostInit 1 */
  466. /* USER CODE END TIM3_MspPostInit 1 */
  467. }
  468. else if(htim->Instance==TIM4)
  469. {
  470. /* USER CODE BEGIN TIM4_MspPostInit 0 */
  471. /* USER CODE END TIM4_MspPostInit 0 */
  472. __HAL_RCC_GPIOD_CLK_ENABLE();
  473. /**TIM4 GPIO Configuration
  474. PD14 ------> TIM4_CH3
  475. PD15 ------> TIM4_CH4
  476. */
  477. GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_15;
  478. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  479. GPIO_InitStruct.Pull = GPIO_NOPULL;
  480. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  481. GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
  482. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  483. /* USER CODE BEGIN TIM4_MspPostInit 1 */
  484. /* USER CODE END TIM4_MspPostInit 1 */
  485. }
  486. }
  487. /**
  488. * @brief TIM_PWM MSP De-Initialization
  489. * This function freeze the hardware resources used in this example
  490. * @param htim_pwm: TIM_PWM handle pointer
  491. * @retval None
  492. */
  493. void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
  494. {
  495. if(htim_pwm->Instance==TIM1)
  496. {
  497. /* USER CODE BEGIN TIM1_MspDeInit 0 */
  498. /* USER CODE END TIM1_MspDeInit 0 */
  499. /* Peripheral clock disable */
  500. __HAL_RCC_TIM1_CLK_DISABLE();
  501. /* USER CODE BEGIN TIM1_MspDeInit 1 */
  502. /* USER CODE END TIM1_MspDeInit 1 */
  503. }
  504. else if(htim_pwm->Instance==TIM3)
  505. {
  506. /* USER CODE BEGIN TIM3_MspDeInit 0 */
  507. /* USER CODE END TIM3_MspDeInit 0 */
  508. /* Peripheral clock disable */
  509. __HAL_RCC_TIM3_CLK_DISABLE();
  510. /* USER CODE BEGIN TIM3_MspDeInit 1 */
  511. /* USER CODE END TIM3_MspDeInit 1 */
  512. }
  513. else if(htim_pwm->Instance==TIM4)
  514. {
  515. /* USER CODE BEGIN TIM4_MspDeInit 0 */
  516. /* USER CODE END TIM4_MspDeInit 0 */
  517. /* Peripheral clock disable */
  518. __HAL_RCC_TIM4_CLK_DISABLE();
  519. /* USER CODE BEGIN TIM4_MspDeInit 1 */
  520. /* USER CODE END TIM4_MspDeInit 1 */
  521. }
  522. }
  523. /**
  524. * @brief PCD MSP Initialization
  525. * This function configures the hardware resources used in this example
  526. * @param hpcd: PCD handle pointer
  527. * @retval None
  528. */
  529. void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)
  530. {
  531. GPIO_InitTypeDef GPIO_InitStruct = {0};
  532. RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
  533. if(hpcd->Instance==USB_DRD_FS)
  534. {
  535. /* USER CODE BEGIN USB_DRD_FS_MspInit 0 */
  536. /* USER CODE END USB_DRD_FS_MspInit 0 */
  537. /** Initializes the peripherals clock
  538. */
  539. PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
  540. PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_HSI48;
  541. if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
  542. {
  543. Error_Handler();
  544. }
  545. __HAL_RCC_GPIOA_CLK_ENABLE();
  546. /**USB GPIO Configuration
  547. PA11 ------> USB_DM
  548. PA12 ------> USB_DP
  549. */
  550. GPIO_InitStruct.Pin = USB_FS_N_Pin|USB_FS_P_Pin;
  551. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  552. GPIO_InitStruct.Pull = GPIO_NOPULL;
  553. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  554. GPIO_InitStruct.Alternate = GPIO_AF10_USB;
  555. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  556. /* Peripheral clock enable */
  557. __HAL_RCC_USB_CLK_ENABLE();
  558. /* USER CODE BEGIN USB_DRD_FS_MspInit 1 */
  559. /* USER CODE END USB_DRD_FS_MspInit 1 */
  560. }
  561. }
  562. /**
  563. * @brief PCD MSP De-Initialization
  564. * This function freeze the hardware resources used in this example
  565. * @param hpcd: PCD handle pointer
  566. * @retval None
  567. */
  568. void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd)
  569. {
  570. if(hpcd->Instance==USB_DRD_FS)
  571. {
  572. /* USER CODE BEGIN USB_DRD_FS_MspDeInit 0 */
  573. /* USER CODE END USB_DRD_FS_MspDeInit 0 */
  574. /* Peripheral clock disable */
  575. __HAL_RCC_USB_CLK_DISABLE();
  576. /**USB GPIO Configuration
  577. PA11 ------> USB_DM
  578. PA12 ------> USB_DP
  579. */
  580. HAL_GPIO_DeInit(GPIOA, USB_FS_N_Pin|USB_FS_P_Pin);
  581. /* USER CODE BEGIN USB_DRD_FS_MspDeInit 1 */
  582. /* USER CODE END USB_DRD_FS_MspDeInit 1 */
  583. }
  584. }
  585. /* USER CODE BEGIN 1 */
  586. /* USER CODE END 1 */