stm32l5xx_hal_msp.c 30 KB

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