训练营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.
 
 
 
 
 
 

552 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. __HAL_TIM_CLEAR_FLAG(&htim10, TIM_FLAG_UPDATE);
  134. __HAL_TIM_CLEAR_IT(&htim10, TIM_IT_UPDATE);
  135. TIM10->SR = 0; // Ö±½ÓÇå³ý״̬¼Ä´æÆ÷
  136. /* USER CODE END TIM10_Init 2 */
  137. HAL_TIM_MspPostInit(&htim10);
  138. }
  139. /* TIM11 init function */
  140. void MX_TIM11_Init(void)
  141. {
  142. /* USER CODE BEGIN TIM11_Init 0 */
  143. /* USER CODE END TIM11_Init 0 */
  144. TIM_OC_InitTypeDef sConfigOC = {0};
  145. /* USER CODE BEGIN TIM11_Init 1 */
  146. /* USER CODE END TIM11_Init 1 */
  147. htim11.Instance = TIM11;
  148. htim11.Init.Prescaler = 0;
  149. htim11.Init.CounterMode = TIM_COUNTERMODE_UP;
  150. htim11.Init.Period = 65535;
  151. htim11.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  152. htim11.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
  153. if (HAL_TIM_Base_Init(&htim11) != HAL_OK)
  154. {
  155. Error_Handler();
  156. }
  157. if (HAL_TIM_PWM_Init(&htim11) != HAL_OK)
  158. {
  159. Error_Handler();
  160. }
  161. sConfigOC.OCMode = TIM_OCMODE_PWM1;
  162. sConfigOC.Pulse = 0;
  163. sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
  164. sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  165. if (HAL_TIM_PWM_ConfigChannel(&htim11, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
  166. {
  167. Error_Handler();
  168. }
  169. /* USER CODE BEGIN TIM11_Init 2 */
  170. /* USER CODE END TIM11_Init 2 */
  171. HAL_TIM_MspPostInit(&htim11);
  172. }
  173. /* TIM13 init function */
  174. void MX_TIM13_Init(void)
  175. {
  176. /* USER CODE BEGIN TIM13_Init 0 */
  177. /* USER CODE END TIM13_Init 0 */
  178. TIM_OC_InitTypeDef sConfigOC = {0};
  179. /* USER CODE BEGIN TIM13_Init 1 */
  180. /* USER CODE END TIM13_Init 1 */
  181. htim13.Instance = TIM13;
  182. htim13.Init.Prescaler = 0;
  183. htim13.Init.CounterMode = TIM_COUNTERMODE_UP;
  184. htim13.Init.Period = 65535;
  185. htim13.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  186. htim13.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
  187. if (HAL_TIM_Base_Init(&htim13) != HAL_OK)
  188. {
  189. Error_Handler();
  190. }
  191. if (HAL_TIM_PWM_Init(&htim13) != HAL_OK)
  192. {
  193. Error_Handler();
  194. }
  195. sConfigOC.OCMode = TIM_OCMODE_PWM1;
  196. sConfigOC.Pulse = 0;
  197. sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
  198. sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  199. if (HAL_TIM_PWM_ConfigChannel(&htim13, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
  200. {
  201. Error_Handler();
  202. }
  203. /* USER CODE BEGIN TIM13_Init 2 */
  204. /* USER CODE END TIM13_Init 2 */
  205. HAL_TIM_MspPostInit(&htim13);
  206. }
  207. /* TIM14 init function */
  208. void MX_TIM14_Init(void)
  209. {
  210. /* USER CODE BEGIN TIM14_Init 0 */
  211. /* USER CODE END TIM14_Init 0 */
  212. TIM_OC_InitTypeDef sConfigOC = {0};
  213. /* USER CODE BEGIN TIM14_Init 1 */
  214. /* USER CODE END TIM14_Init 1 */
  215. htim14.Instance = TIM14;
  216. htim14.Init.Prescaler = 0;
  217. htim14.Init.CounterMode = TIM_COUNTERMODE_UP;
  218. htim14.Init.Period = 65535;
  219. htim14.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  220. htim14.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
  221. if (HAL_TIM_Base_Init(&htim14) != HAL_OK)
  222. {
  223. Error_Handler();
  224. }
  225. if (HAL_TIM_PWM_Init(&htim14) != HAL_OK)
  226. {
  227. Error_Handler();
  228. }
  229. sConfigOC.OCMode = TIM_OCMODE_PWM1;
  230. sConfigOC.Pulse = 0;
  231. sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
  232. sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  233. if (HAL_TIM_PWM_ConfigChannel(&htim14, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
  234. {
  235. Error_Handler();
  236. }
  237. /* USER CODE BEGIN TIM14_Init 2 */
  238. /* USER CODE END TIM14_Init 2 */
  239. HAL_TIM_MspPostInit(&htim14);
  240. }
  241. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
  242. {
  243. GPIO_InitTypeDef GPIO_InitStruct = {0};
  244. if(tim_baseHandle->Instance==TIM2)
  245. {
  246. /* USER CODE BEGIN TIM2_MspInit 0 */
  247. /* USER CODE END TIM2_MspInit 0 */
  248. /* TIM2 clock enable */
  249. __HAL_RCC_TIM2_CLK_ENABLE();
  250. __HAL_RCC_GPIOA_CLK_ENABLE();
  251. /**TIM2 GPIO Configuration
  252. PA15 ------> TIM2_ETR
  253. */
  254. GPIO_InitStruct.Pin = GPIO_PIN_15;
  255. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  256. GPIO_InitStruct.Pull = GPIO_NOPULL;
  257. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  258. GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
  259. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  260. /* TIM2 interrupt Init */
  261. HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0);
  262. HAL_NVIC_EnableIRQ(TIM2_IRQn);
  263. /* USER CODE BEGIN TIM2_MspInit 1 */
  264. /* USER CODE END TIM2_MspInit 1 */
  265. }
  266. else if(tim_baseHandle->Instance==TIM3)
  267. {
  268. /* USER CODE BEGIN TIM3_MspInit 0 */
  269. /* USER CODE END TIM3_MspInit 0 */
  270. /* TIM3 clock enable */
  271. __HAL_RCC_TIM3_CLK_ENABLE();
  272. /* TIM3 interrupt Init */
  273. HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0);
  274. HAL_NVIC_EnableIRQ(TIM3_IRQn);
  275. /* USER CODE BEGIN TIM3_MspInit 1 */
  276. /* USER CODE END TIM3_MspInit 1 */
  277. }
  278. else if(tim_baseHandle->Instance==TIM10)
  279. {
  280. /* USER CODE BEGIN TIM10_MspInit 0 */
  281. /* USER CODE END TIM10_MspInit 0 */
  282. /* TIM10 clock enable */
  283. __HAL_RCC_TIM10_CLK_ENABLE();
  284. /* USER CODE BEGIN TIM10_MspInit 1 */
  285. /* USER CODE END TIM10_MspInit 1 */
  286. }
  287. else if(tim_baseHandle->Instance==TIM11)
  288. {
  289. /* USER CODE BEGIN TIM11_MspInit 0 */
  290. /* USER CODE END TIM11_MspInit 0 */
  291. /* TIM11 clock enable */
  292. __HAL_RCC_TIM11_CLK_ENABLE();
  293. /* USER CODE BEGIN TIM11_MspInit 1 */
  294. /* USER CODE END TIM11_MspInit 1 */
  295. }
  296. else if(tim_baseHandle->Instance==TIM13)
  297. {
  298. /* USER CODE BEGIN TIM13_MspInit 0 */
  299. /* USER CODE END TIM13_MspInit 0 */
  300. /* TIM13 clock enable */
  301. __HAL_RCC_TIM13_CLK_ENABLE();
  302. /* USER CODE BEGIN TIM13_MspInit 1 */
  303. /* USER CODE END TIM13_MspInit 1 */
  304. }
  305. else if(tim_baseHandle->Instance==TIM14)
  306. {
  307. /* USER CODE BEGIN TIM14_MspInit 0 */
  308. /* USER CODE END TIM14_MspInit 0 */
  309. /* TIM14 clock enable */
  310. __HAL_RCC_TIM14_CLK_ENABLE();
  311. /* USER CODE BEGIN TIM14_MspInit 1 */
  312. /* USER CODE END TIM14_MspInit 1 */
  313. }
  314. }
  315. void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
  316. {
  317. GPIO_InitTypeDef GPIO_InitStruct = {0};
  318. if(timHandle->Instance==TIM10)
  319. {
  320. /* USER CODE BEGIN TIM10_MspPostInit 0 */
  321. /* USER CODE END TIM10_MspPostInit 0 */
  322. __HAL_RCC_GPIOF_CLK_ENABLE();
  323. /**TIM10 GPIO Configuration
  324. PF6 ------> TIM10_CH1
  325. */
  326. GPIO_InitStruct.Pin = GPIO_PIN_6;
  327. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  328. GPIO_InitStruct.Pull = GPIO_NOPULL;
  329. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  330. GPIO_InitStruct.Alternate = GPIO_AF3_TIM10;
  331. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  332. /* USER CODE BEGIN TIM10_MspPostInit 1 */
  333. /* USER CODE END TIM10_MspPostInit 1 */
  334. }
  335. else if(timHandle->Instance==TIM11)
  336. {
  337. /* USER CODE BEGIN TIM11_MspPostInit 0 */
  338. /* USER CODE END TIM11_MspPostInit 0 */
  339. __HAL_RCC_GPIOF_CLK_ENABLE();
  340. /**TIM11 GPIO Configuration
  341. PF7 ------> TIM11_CH1
  342. */
  343. GPIO_InitStruct.Pin = GPIO_PIN_7;
  344. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  345. GPIO_InitStruct.Pull = GPIO_NOPULL;
  346. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  347. GPIO_InitStruct.Alternate = GPIO_AF3_TIM11;
  348. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  349. /* USER CODE BEGIN TIM11_MspPostInit 1 */
  350. /* USER CODE END TIM11_MspPostInit 1 */
  351. }
  352. else if(timHandle->Instance==TIM13)
  353. {
  354. /* USER CODE BEGIN TIM13_MspPostInit 0 */
  355. /* USER CODE END TIM13_MspPostInit 0 */
  356. __HAL_RCC_GPIOF_CLK_ENABLE();
  357. /**TIM13 GPIO Configuration
  358. PF8 ------> TIM13_CH1
  359. */
  360. GPIO_InitStruct.Pin = GPIO_PIN_8;
  361. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  362. GPIO_InitStruct.Pull = GPIO_NOPULL;
  363. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  364. GPIO_InitStruct.Alternate = GPIO_AF9_TIM13;
  365. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  366. /* USER CODE BEGIN TIM13_MspPostInit 1 */
  367. /* USER CODE END TIM13_MspPostInit 1 */
  368. }
  369. else if(timHandle->Instance==TIM14)
  370. {
  371. /* USER CODE BEGIN TIM14_MspPostInit 0 */
  372. /* USER CODE END TIM14_MspPostInit 0 */
  373. __HAL_RCC_GPIOF_CLK_ENABLE();
  374. /**TIM14 GPIO Configuration
  375. PF9 ------> TIM14_CH1
  376. */
  377. GPIO_InitStruct.Pin = GPIO_PIN_9;
  378. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  379. GPIO_InitStruct.Pull = GPIO_NOPULL;
  380. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  381. GPIO_InitStruct.Alternate = GPIO_AF9_TIM14;
  382. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  383. /* USER CODE BEGIN TIM14_MspPostInit 1 */
  384. /* USER CODE END TIM14_MspPostInit 1 */
  385. }
  386. }
  387. void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
  388. {
  389. if(tim_baseHandle->Instance==TIM2)
  390. {
  391. /* USER CODE BEGIN TIM2_MspDeInit 0 */
  392. /* USER CODE END TIM2_MspDeInit 0 */
  393. /* Peripheral clock disable */
  394. __HAL_RCC_TIM2_CLK_DISABLE();
  395. /**TIM2 GPIO Configuration
  396. PA15 ------> TIM2_ETR
  397. */
  398. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_15);
  399. /* TIM2 interrupt Deinit */
  400. HAL_NVIC_DisableIRQ(TIM2_IRQn);
  401. /* USER CODE BEGIN TIM2_MspDeInit 1 */
  402. /* USER CODE END TIM2_MspDeInit 1 */
  403. }
  404. else if(tim_baseHandle->Instance==TIM3)
  405. {
  406. /* USER CODE BEGIN TIM3_MspDeInit 0 */
  407. /* USER CODE END TIM3_MspDeInit 0 */
  408. /* Peripheral clock disable */
  409. __HAL_RCC_TIM3_CLK_DISABLE();
  410. /* TIM3 interrupt Deinit */
  411. HAL_NVIC_DisableIRQ(TIM3_IRQn);
  412. /* USER CODE BEGIN TIM3_MspDeInit 1 */
  413. /* USER CODE END TIM3_MspDeInit 1 */
  414. }
  415. else if(tim_baseHandle->Instance==TIM10)
  416. {
  417. /* USER CODE BEGIN TIM10_MspDeInit 0 */
  418. /* USER CODE END TIM10_MspDeInit 0 */
  419. /* Peripheral clock disable */
  420. __HAL_RCC_TIM10_CLK_DISABLE();
  421. /* USER CODE BEGIN TIM10_MspDeInit 1 */
  422. /* USER CODE END TIM10_MspDeInit 1 */
  423. }
  424. else if(tim_baseHandle->Instance==TIM11)
  425. {
  426. /* USER CODE BEGIN TIM11_MspDeInit 0 */
  427. /* USER CODE END TIM11_MspDeInit 0 */
  428. /* Peripheral clock disable */
  429. __HAL_RCC_TIM11_CLK_DISABLE();
  430. /* USER CODE BEGIN TIM11_MspDeInit 1 */
  431. /* USER CODE END TIM11_MspDeInit 1 */
  432. }
  433. else if(tim_baseHandle->Instance==TIM13)
  434. {
  435. /* USER CODE BEGIN TIM13_MspDeInit 0 */
  436. /* USER CODE END TIM13_MspDeInit 0 */
  437. /* Peripheral clock disable */
  438. __HAL_RCC_TIM13_CLK_DISABLE();
  439. /* USER CODE BEGIN TIM13_MspDeInit 1 */
  440. /* USER CODE END TIM13_MspDeInit 1 */
  441. }
  442. else if(tim_baseHandle->Instance==TIM14)
  443. {
  444. /* USER CODE BEGIN TIM14_MspDeInit 0 */
  445. /* USER CODE END TIM14_MspDeInit 0 */
  446. /* Peripheral clock disable */
  447. __HAL_RCC_TIM14_CLK_DISABLE();
  448. /* USER CODE BEGIN TIM14_MspDeInit 1 */
  449. /* USER CODE END TIM14_MspDeInit 1 */
  450. }
  451. }
  452. /* USER CODE BEGIN 1 */
  453. /* USER CODE END 1 */