训练营PLSR题目
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 
 

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