|
- /* USER CODE BEGIN Header */
- /**
- ******************************************************************************
- * @file tim.c
- * @brief This file provides code for the configuration
- * of the TIM instances.
- ******************************************************************************
- * @attention
- *
- * Copyright (c) 2025 STMicroelectronics.
- * All rights reserved.
- *
- * This software is licensed under terms that can be found in the LICENSE file
- * in the root directory of this software component.
- * If no LICENSE file comes with this software, it is provided AS-IS.
- *
- ******************************************************************************
- */
- /* USER CODE END Header */
- /* Includes ------------------------------------------------------------------*/
- #include "tim.h"
-
- /* USER CODE BEGIN 0 */
-
- /* USER CODE END 0 */
-
- TIM_HandleTypeDef htim9;
- TIM_HandleTypeDef htim10;
-
- /* TIM9 init function */
- void MX_TIM9_Init(void)
- {
-
- /* USER CODE BEGIN TIM9_Init 0 */
-
- /* USER CODE END TIM9_Init 0 */
-
- TIM_SlaveConfigTypeDef sSlaveConfig = {0};
-
- /* USER CODE BEGIN TIM9_Init 1 */
-
- /* USER CODE END TIM9_Init 1 */
- htim9.Instance = TIM9;
- htim9.Init.Prescaler = 0;
- htim9.Init.CounterMode = TIM_COUNTERMODE_UP;
- htim9.Init.Period = 65535;
- htim9.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
- htim9.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
- if (HAL_TIM_Base_Init(&htim9) != HAL_OK)
- {
- Error_Handler();
- }
- sSlaveConfig.SlaveMode = TIM_SLAVEMODE_GATED;
- sSlaveConfig.InputTrigger = TIM_TS_ITR2;
- if (HAL_TIM_SlaveConfigSynchro(&htim9, &sSlaveConfig) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN TIM9_Init 2 */
- __HAL_TIM_CLEAR_FLAG(&htim9, TIM_FLAG_CC2); //清除中断标志
- /* USER CODE END TIM9_Init 2 */
-
- }
- /* TIM10 init function */
- void MX_TIM10_Init(void)
- {
-
- /* USER CODE BEGIN TIM10_Init 0 */
-
- /* USER CODE END TIM10_Init 0 */
-
- TIM_OC_InitTypeDef sConfigOC = {0};
-
- /* USER CODE BEGIN TIM10_Init 1 */
-
- /* USER CODE END TIM10_Init 1 */
- htim10.Instance = TIM10;
- htim10.Init.Prescaler = 72;
- htim10.Init.CounterMode = TIM_COUNTERMODE_UP;
- htim10.Init.Period = 65535;
- htim10.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
- htim10.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
- if (HAL_TIM_Base_Init(&htim10) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_TIM_PWM_Init(&htim10) != HAL_OK)
- {
- Error_Handler();
- }
- sConfigOC.OCMode = TIM_OCMODE_PWM1;
- sConfigOC.Pulse = 32767;
- sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
- sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
- if (HAL_TIM_PWM_ConfigChannel(&htim10, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN TIM10_Init 2 */
- __HAL_TIM_CLEAR_FLAG(&htim10, TIM_FLAG_UPDATE);
- __HAL_TIM_CLEAR_IT(&htim10, TIM_IT_UPDATE);
- TIM10->SR = 0; // 直接清除状态寄存器
-
- TIM_MasterConfigTypeDef sMasterConfig = {0};
- sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE; // TRGO信号源为更新事件
- sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; // 仅主模式
- HAL_TIMEx_MasterConfigSynchronization(&htim10, &sMasterConfig);
- /* USER CODE END TIM10_Init 2 */
- HAL_TIM_MspPostInit(&htim10);
-
- }
-
- void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
- {
-
- if(tim_baseHandle->Instance==TIM9)
- {
- /* USER CODE BEGIN TIM9_MspInit 0 */
-
- /* USER CODE END TIM9_MspInit 0 */
- /* TIM9 clock enable */
- __HAL_RCC_TIM9_CLK_ENABLE();
-
- /* TIM9 interrupt Init */
- HAL_NVIC_SetPriority(TIM1_BRK_TIM9_IRQn, 0, 0);
- HAL_NVIC_EnableIRQ(TIM1_BRK_TIM9_IRQn);
- /* USER CODE BEGIN TIM9_MspInit 1 */
-
- /* USER CODE END TIM9_MspInit 1 */
- }
- else if(tim_baseHandle->Instance==TIM10)
- {
- /* USER CODE BEGIN TIM10_MspInit 0 */
-
- /* USER CODE END TIM10_MspInit 0 */
- /* TIM10 clock enable */
- __HAL_RCC_TIM10_CLK_ENABLE();
- /* USER CODE BEGIN TIM10_MspInit 1 */
-
- /* USER CODE END TIM10_MspInit 1 */
- }
- }
- void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
- {
-
- GPIO_InitTypeDef GPIO_InitStruct = {0};
- if(timHandle->Instance==TIM10)
- {
- /* USER CODE BEGIN TIM10_MspPostInit 0 */
-
- /* USER CODE END TIM10_MspPostInit 0 */
-
- __HAL_RCC_GPIOF_CLK_ENABLE();
- /**TIM10 GPIO Configuration
- PF6 ------> TIM10_CH1
- */
- GPIO_InitStruct.Pin = GPIO_PIN_6;
- GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- GPIO_InitStruct.Alternate = GPIO_AF3_TIM10;
- HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
-
- /* USER CODE BEGIN TIM10_MspPostInit 1 */
-
- /* USER CODE END TIM10_MspPostInit 1 */
- }
-
- }
-
- void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
- {
-
- if(tim_baseHandle->Instance==TIM9)
- {
- /* USER CODE BEGIN TIM9_MspDeInit 0 */
-
- /* USER CODE END TIM9_MspDeInit 0 */
- /* Peripheral clock disable */
- __HAL_RCC_TIM9_CLK_DISABLE();
-
- /* TIM9 interrupt Deinit */
- HAL_NVIC_DisableIRQ(TIM1_BRK_TIM9_IRQn);
- /* USER CODE BEGIN TIM9_MspDeInit 1 */
-
- /* USER CODE END TIM9_MspDeInit 1 */
- }
- else if(tim_baseHandle->Instance==TIM10)
- {
- /* USER CODE BEGIN TIM10_MspDeInit 0 */
-
- /* USER CODE END TIM10_MspDeInit 0 */
- /* Peripheral clock disable */
- __HAL_RCC_TIM10_CLK_DISABLE();
- /* USER CODE BEGIN TIM10_MspDeInit 1 */
-
- /* USER CODE END TIM10_MspDeInit 1 */
- }
- }
-
- /* USER CODE BEGIN 1 */
-
- /* USER CODE END 1 */
|