训练营PLSR题目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

548 lines
14 KiB

  1. /* USER CODE BEGIN Header */
  2. /**
  3. ******************************************************************************
  4. * @file tim.c
  5. * @brief This file provides code for the configuration
  6. * of the TIM instances.
  7. ******************************************************************************
  8. * @attention
  9. *
  10. * Copyright (c) 2025 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 "tim.h"
  22. /* USER CODE BEGIN 0 */
  23. /* USER CODE END 0 */
  24. TIM_HandleTypeDef htim2;
  25. TIM_HandleTypeDef htim3;
  26. TIM_HandleTypeDef htim10;
  27. TIM_HandleTypeDef htim11;
  28. TIM_HandleTypeDef htim13;
  29. TIM_HandleTypeDef htim14;
  30. /* TIM2 init function */
  31. void MX_TIM2_Init(void)
  32. {
  33. /* USER CODE BEGIN TIM2_Init 0 */
  34. /* USER CODE END TIM2_Init 0 */
  35. TIM_ClockConfigTypeDef sClockSourceConfig = {0};
  36. TIM_MasterConfigTypeDef sMasterConfig = {0};
  37. /* USER CODE BEGIN TIM2_Init 1 */
  38. /* USER CODE END TIM2_Init 1 */
  39. htim2.Instance = TIM2;
  40. htim2.Init.Prescaler = 0;
  41. htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
  42. htim2.Init.Period = 4294967295;
  43. htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  44. htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
  45. if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
  46. {
  47. Error_Handler();
  48. }
  49. sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_ETRMODE2;
  50. sClockSourceConfig.ClockPolarity = TIM_CLOCKPOLARITY_NONINVERTED;
  51. sClockSourceConfig.ClockPrescaler = TIM_CLOCKPRESCALER_DIV1;
  52. sClockSourceConfig.ClockFilter = 0;
  53. if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)
  54. {
  55. Error_Handler();
  56. }
  57. sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  58. sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  59. if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
  60. {
  61. Error_Handler();
  62. }
  63. /* USER CODE BEGIN TIM2_Init 2 */
  64. __HAL_TIM_CLEAR_FLAG(&htim2, TIM_FLAG_UPDATE);
  65. HAL_TIM_Base_Start_IT(&htim2);
  66. /* USER CODE END TIM2_Init 2 */
  67. }
  68. /* TIM3 init function */
  69. void MX_TIM3_Init(void)
  70. {
  71. /* USER CODE BEGIN TIM3_Init 0 */
  72. /* USER CODE END TIM3_Init 0 */
  73. TIM_ClockConfigTypeDef sClockSourceConfig = {0};
  74. TIM_MasterConfigTypeDef sMasterConfig = {0};
  75. /* USER CODE BEGIN TIM3_Init 1 */
  76. /* USER CODE END TIM3_Init 1 */
  77. htim3.Instance = TIM3;
  78. htim3.Init.Prescaler = 72-1;
  79. htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
  80. htim3.Init.Period = 999;
  81. htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  82. htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
  83. if (HAL_TIM_Base_Init(&htim3) != HAL_OK)
  84. {
  85. Error_Handler();
  86. }
  87. sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
  88. if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK)
  89. {
  90. Error_Handler();
  91. }
  92. sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  93. sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  94. if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
  95. {
  96. Error_Handler();
  97. }
  98. /* USER CODE BEGIN TIM3_Init 2 */
  99. __HAL_TIM_CLEAR_FLAG(&htim3, TIM_FLAG_UPDATE);
  100. /* USER CODE END TIM3_Init 2 */
  101. }
  102. /* TIM10 init function */
  103. void MX_TIM10_Init(void)
  104. {
  105. /* USER CODE BEGIN TIM10_Init 0 */
  106. /* USER CODE END TIM10_Init 0 */
  107. TIM_OC_InitTypeDef sConfigOC = {0};
  108. /* USER CODE BEGIN TIM10_Init 1 */
  109. /* USER CODE END TIM10_Init 1 */
  110. htim10.Instance = TIM10;
  111. htim10.Init.Prescaler = 1;
  112. htim10.Init.CounterMode = TIM_COUNTERMODE_UP;
  113. htim10.Init.Period = 1;
  114. htim10.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  115. htim10.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  116. if (HAL_TIM_Base_Init(&htim10) != HAL_OK)
  117. {
  118. Error_Handler();
  119. }
  120. if (HAL_TIM_PWM_Init(&htim10) != HAL_OK)
  121. {
  122. Error_Handler();
  123. }
  124. sConfigOC.OCMode = TIM_OCMODE_PWM1;
  125. sConfigOC.Pulse = 0;
  126. sConfigOC.OCPolarity = TIM_OCPOLARITY_LOW;
  127. sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  128. if (HAL_TIM_PWM_ConfigChannel(&htim10, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
  129. {
  130. Error_Handler();
  131. }
  132. /* USER CODE BEGIN TIM10_Init 2 */
  133. /* USER CODE END TIM10_Init 2 */
  134. HAL_TIM_MspPostInit(&htim10);
  135. }
  136. /* TIM11 init function */
  137. void MX_TIM11_Init(void)
  138. {
  139. /* USER CODE BEGIN TIM11_Init 0 */
  140. /* USER CODE END TIM11_Init 0 */
  141. TIM_OC_InitTypeDef sConfigOC = {0};
  142. /* USER CODE BEGIN TIM11_Init 1 */
  143. /* USER CODE END TIM11_Init 1 */
  144. htim11.Instance = TIM11;
  145. htim11.Init.Prescaler = 1;
  146. htim11.Init.CounterMode = TIM_COUNTERMODE_UP;
  147. htim11.Init.Period = 1;
  148. htim11.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  149. htim11.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  150. if (HAL_TIM_Base_Init(&htim11) != HAL_OK)
  151. {
  152. Error_Handler();
  153. }
  154. if (HAL_TIM_PWM_Init(&htim11) != HAL_OK)
  155. {
  156. Error_Handler();
  157. }
  158. sConfigOC.OCMode = TIM_OCMODE_PWM1;
  159. sConfigOC.Pulse = 0;
  160. sConfigOC.OCPolarity = TIM_OCPOLARITY_LOW;
  161. sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  162. if (HAL_TIM_PWM_ConfigChannel(&htim11, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
  163. {
  164. Error_Handler();
  165. }
  166. /* USER CODE BEGIN TIM11_Init 2 */
  167. /* USER CODE END TIM11_Init 2 */
  168. HAL_TIM_MspPostInit(&htim11);
  169. }
  170. /* TIM13 init function */
  171. void MX_TIM13_Init(void)
  172. {
  173. /* USER CODE BEGIN TIM13_Init 0 */
  174. /* USER CODE END TIM13_Init 0 */
  175. TIM_OC_InitTypeDef sConfigOC = {0};
  176. /* USER CODE BEGIN TIM13_Init 1 */
  177. /* USER CODE END TIM13_Init 1 */
  178. htim13.Instance = TIM13;
  179. htim13.Init.Prescaler = 1;
  180. htim13.Init.CounterMode = TIM_COUNTERMODE_UP;
  181. htim13.Init.Period = 1;
  182. htim13.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  183. htim13.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  184. if (HAL_TIM_Base_Init(&htim13) != HAL_OK)
  185. {
  186. Error_Handler();
  187. }
  188. if (HAL_TIM_PWM_Init(&htim13) != HAL_OK)
  189. {
  190. Error_Handler();
  191. }
  192. sConfigOC.OCMode = TIM_OCMODE_PWM1;
  193. sConfigOC.Pulse = 0;
  194. sConfigOC.OCPolarity = TIM_OCPOLARITY_LOW;
  195. sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  196. if (HAL_TIM_PWM_ConfigChannel(&htim13, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
  197. {
  198. Error_Handler();
  199. }
  200. /* USER CODE BEGIN TIM13_Init 2 */
  201. /* USER CODE END TIM13_Init 2 */
  202. HAL_TIM_MspPostInit(&htim13);
  203. }
  204. /* TIM14 init function */
  205. void MX_TIM14_Init(void)
  206. {
  207. /* USER CODE BEGIN TIM14_Init 0 */
  208. /* USER CODE END TIM14_Init 0 */
  209. TIM_OC_InitTypeDef sConfigOC = {0};
  210. /* USER CODE BEGIN TIM14_Init 1 */
  211. /* USER CODE END TIM14_Init 1 */
  212. htim14.Instance = TIM14;
  213. htim14.Init.Prescaler = 1;
  214. htim14.Init.CounterMode = TIM_COUNTERMODE_UP;
  215. htim14.Init.Period = 1;
  216. htim14.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  217. htim14.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  218. if (HAL_TIM_Base_Init(&htim14) != HAL_OK)
  219. {
  220. Error_Handler();
  221. }
  222. if (HAL_TIM_PWM_Init(&htim14) != HAL_OK)
  223. {
  224. Error_Handler();
  225. }
  226. sConfigOC.OCMode = TIM_OCMODE_PWM1;
  227. sConfigOC.Pulse = 0;
  228. sConfigOC.OCPolarity = TIM_OCPOLARITY_LOW;
  229. sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  230. if (HAL_TIM_PWM_ConfigChannel(&htim14, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
  231. {
  232. Error_Handler();
  233. }
  234. /* USER CODE BEGIN TIM14_Init 2 */
  235. /* USER CODE END TIM14_Init 2 */
  236. HAL_TIM_MspPostInit(&htim14);
  237. }
  238. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
  239. {
  240. GPIO_InitTypeDef GPIO_InitStruct = {0};
  241. if(tim_baseHandle->Instance==TIM2)
  242. {
  243. /* USER CODE BEGIN TIM2_MspInit 0 */
  244. /* USER CODE END TIM2_MspInit 0 */
  245. /* TIM2 clock enable */
  246. __HAL_RCC_TIM2_CLK_ENABLE();
  247. __HAL_RCC_GPIOA_CLK_ENABLE();
  248. /**TIM2 GPIO Configuration
  249. PA15 ------> TIM2_ETR
  250. */
  251. GPIO_InitStruct.Pin = GPIO_PIN_15;
  252. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  253. GPIO_InitStruct.Pull = GPIO_NOPULL;
  254. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  255. GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
  256. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  257. /* TIM2 interrupt Init */
  258. HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0);
  259. HAL_NVIC_EnableIRQ(TIM2_IRQn);
  260. /* USER CODE BEGIN TIM2_MspInit 1 */
  261. /* USER CODE END TIM2_MspInit 1 */
  262. }
  263. else if(tim_baseHandle->Instance==TIM3)
  264. {
  265. /* USER CODE BEGIN TIM3_MspInit 0 */
  266. /* USER CODE END TIM3_MspInit 0 */
  267. /* TIM3 clock enable */
  268. __HAL_RCC_TIM3_CLK_ENABLE();
  269. /* TIM3 interrupt Init */
  270. HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0);
  271. HAL_NVIC_EnableIRQ(TIM3_IRQn);
  272. /* USER CODE BEGIN TIM3_MspInit 1 */
  273. /* USER CODE END TIM3_MspInit 1 */
  274. }
  275. else if(tim_baseHandle->Instance==TIM10)
  276. {
  277. /* USER CODE BEGIN TIM10_MspInit 0 */
  278. /* USER CODE END TIM10_MspInit 0 */
  279. /* TIM10 clock enable */
  280. __HAL_RCC_TIM10_CLK_ENABLE();
  281. /* USER CODE BEGIN TIM10_MspInit 1 */
  282. /* USER CODE END TIM10_MspInit 1 */
  283. }
  284. else if(tim_baseHandle->Instance==TIM11)
  285. {
  286. /* USER CODE BEGIN TIM11_MspInit 0 */
  287. /* USER CODE END TIM11_MspInit 0 */
  288. /* TIM11 clock enable */
  289. __HAL_RCC_TIM11_CLK_ENABLE();
  290. /* USER CODE BEGIN TIM11_MspInit 1 */
  291. /* USER CODE END TIM11_MspInit 1 */
  292. }
  293. else if(tim_baseHandle->Instance==TIM13)
  294. {
  295. /* USER CODE BEGIN TIM13_MspInit 0 */
  296. /* USER CODE END TIM13_MspInit 0 */
  297. /* TIM13 clock enable */
  298. __HAL_RCC_TIM13_CLK_ENABLE();
  299. /* USER CODE BEGIN TIM13_MspInit 1 */
  300. /* USER CODE END TIM13_MspInit 1 */
  301. }
  302. else if(tim_baseHandle->Instance==TIM14)
  303. {
  304. /* USER CODE BEGIN TIM14_MspInit 0 */
  305. /* USER CODE END TIM14_MspInit 0 */
  306. /* TIM14 clock enable */
  307. __HAL_RCC_TIM14_CLK_ENABLE();
  308. /* USER CODE BEGIN TIM14_MspInit 1 */
  309. /* USER CODE END TIM14_MspInit 1 */
  310. }
  311. }
  312. void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
  313. {
  314. GPIO_InitTypeDef GPIO_InitStruct = {0};
  315. if(timHandle->Instance==TIM10)
  316. {
  317. /* USER CODE BEGIN TIM10_MspPostInit 0 */
  318. /* USER CODE END TIM10_MspPostInit 0 */
  319. __HAL_RCC_GPIOF_CLK_ENABLE();
  320. /**TIM10 GPIO Configuration
  321. PF6 ------> TIM10_CH1
  322. */
  323. GPIO_InitStruct.Pin = GPIO_PIN_6;
  324. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  325. GPIO_InitStruct.Pull = GPIO_NOPULL;
  326. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  327. GPIO_InitStruct.Alternate = GPIO_AF3_TIM10;
  328. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  329. /* USER CODE BEGIN TIM10_MspPostInit 1 */
  330. /* USER CODE END TIM10_MspPostInit 1 */
  331. }
  332. else if(timHandle->Instance==TIM11)
  333. {
  334. /* USER CODE BEGIN TIM11_MspPostInit 0 */
  335. /* USER CODE END TIM11_MspPostInit 0 */
  336. __HAL_RCC_GPIOF_CLK_ENABLE();
  337. /**TIM11 GPIO Configuration
  338. PF7 ------> TIM11_CH1
  339. */
  340. GPIO_InitStruct.Pin = GPIO_PIN_7;
  341. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  342. GPIO_InitStruct.Pull = GPIO_NOPULL;
  343. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  344. GPIO_InitStruct.Alternate = GPIO_AF3_TIM11;
  345. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  346. /* USER CODE BEGIN TIM11_MspPostInit 1 */
  347. /* USER CODE END TIM11_MspPostInit 1 */
  348. }
  349. else if(timHandle->Instance==TIM13)
  350. {
  351. /* USER CODE BEGIN TIM13_MspPostInit 0 */
  352. /* USER CODE END TIM13_MspPostInit 0 */
  353. __HAL_RCC_GPIOF_CLK_ENABLE();
  354. /**TIM13 GPIO Configuration
  355. PF8 ------> TIM13_CH1
  356. */
  357. GPIO_InitStruct.Pin = GPIO_PIN_8;
  358. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  359. GPIO_InitStruct.Pull = GPIO_NOPULL;
  360. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  361. GPIO_InitStruct.Alternate = GPIO_AF9_TIM13;
  362. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  363. /* USER CODE BEGIN TIM13_MspPostInit 1 */
  364. /* USER CODE END TIM13_MspPostInit 1 */
  365. }
  366. else if(timHandle->Instance==TIM14)
  367. {
  368. /* USER CODE BEGIN TIM14_MspPostInit 0 */
  369. /* USER CODE END TIM14_MspPostInit 0 */
  370. __HAL_RCC_GPIOF_CLK_ENABLE();
  371. /**TIM14 GPIO Configuration
  372. PF9 ------> TIM14_CH1
  373. */
  374. GPIO_InitStruct.Pin = GPIO_PIN_9;
  375. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  376. GPIO_InitStruct.Pull = GPIO_NOPULL;
  377. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  378. GPIO_InitStruct.Alternate = GPIO_AF9_TIM14;
  379. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  380. /* USER CODE BEGIN TIM14_MspPostInit 1 */
  381. /* USER CODE END TIM14_MspPostInit 1 */
  382. }
  383. }
  384. void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
  385. {
  386. if(tim_baseHandle->Instance==TIM2)
  387. {
  388. /* USER CODE BEGIN TIM2_MspDeInit 0 */
  389. /* USER CODE END TIM2_MspDeInit 0 */
  390. /* Peripheral clock disable */
  391. __HAL_RCC_TIM2_CLK_DISABLE();
  392. /**TIM2 GPIO Configuration
  393. PA15 ------> TIM2_ETR
  394. */
  395. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_15);
  396. /* TIM2 interrupt Deinit */
  397. HAL_NVIC_DisableIRQ(TIM2_IRQn);
  398. /* USER CODE BEGIN TIM2_MspDeInit 1 */
  399. /* USER CODE END TIM2_MspDeInit 1 */
  400. }
  401. else if(tim_baseHandle->Instance==TIM3)
  402. {
  403. /* USER CODE BEGIN TIM3_MspDeInit 0 */
  404. /* USER CODE END TIM3_MspDeInit 0 */
  405. /* Peripheral clock disable */
  406. __HAL_RCC_TIM3_CLK_DISABLE();
  407. /* TIM3 interrupt Deinit */
  408. HAL_NVIC_DisableIRQ(TIM3_IRQn);
  409. /* USER CODE BEGIN TIM3_MspDeInit 1 */
  410. /* USER CODE END TIM3_MspDeInit 1 */
  411. }
  412. else if(tim_baseHandle->Instance==TIM10)
  413. {
  414. /* USER CODE BEGIN TIM10_MspDeInit 0 */
  415. /* USER CODE END TIM10_MspDeInit 0 */
  416. /* Peripheral clock disable */
  417. __HAL_RCC_TIM10_CLK_DISABLE();
  418. /* USER CODE BEGIN TIM10_MspDeInit 1 */
  419. /* USER CODE END TIM10_MspDeInit 1 */
  420. }
  421. else if(tim_baseHandle->Instance==TIM11)
  422. {
  423. /* USER CODE BEGIN TIM11_MspDeInit 0 */
  424. /* USER CODE END TIM11_MspDeInit 0 */
  425. /* Peripheral clock disable */
  426. __HAL_RCC_TIM11_CLK_DISABLE();
  427. /* USER CODE BEGIN TIM11_MspDeInit 1 */
  428. /* USER CODE END TIM11_MspDeInit 1 */
  429. }
  430. else if(tim_baseHandle->Instance==TIM13)
  431. {
  432. /* USER CODE BEGIN TIM13_MspDeInit 0 */
  433. /* USER CODE END TIM13_MspDeInit 0 */
  434. /* Peripheral clock disable */
  435. __HAL_RCC_TIM13_CLK_DISABLE();
  436. /* USER CODE BEGIN TIM13_MspDeInit 1 */
  437. /* USER CODE END TIM13_MspDeInit 1 */
  438. }
  439. else if(tim_baseHandle->Instance==TIM14)
  440. {
  441. /* USER CODE BEGIN TIM14_MspDeInit 0 */
  442. /* USER CODE END TIM14_MspDeInit 0 */
  443. /* Peripheral clock disable */
  444. __HAL_RCC_TIM14_CLK_DISABLE();
  445. /* USER CODE BEGIN TIM14_MspDeInit 1 */
  446. /* USER CODE END TIM14_MspDeInit 1 */
  447. }
  448. }
  449. /* USER CODE BEGIN 1 */
  450. /* USER CODE END 1 */