初级会员

- 积分
- 128
- 金钱
- 128
- 注册时间
- 2019-10-29
- 在线时间
- 56 小时
|

楼主 |
发表于 2021-8-15 14:44:42
|
显示全部楼层
TIM_HandleTypeDef TIM5_Handler; //定时器5句柄
TIM_OC_InitTypeDef TIM5_CH1Handler; //定时器5通道1句柄
void TIM5_PWM_Init(uint16_t arr,uint16_t psc)
{
TIM5_Handler.Instance=TIM5; //定时器3
TIM5_Handler.Init.Prescaler=psc; //定时器分频
TIM5_Handler.Init.CounterMode=TIM_COUNTERMODE_UP;//向上计数模式
TIM5_Handler.Init.Period=arr; //自动重装载值
TIM5_Handler.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;
TIM5_Handler.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
HAL_TIM_PWM_Init(&TIM5_Handler); //初始化PWM
TIM5_CH1Handler.OCMode=TIM_OCMODE_PWM1; //模式选择PWM1
TIM5_CH1Handler.Pulse=arr/2; //设置比较值,此值用来确定占空比,
//默认比较值为自动重装载值的一半,即占空比为50%
TIM5_CH1Handler.OCPolarity=TIM_OCPOLARITY_HIGH; //输出比较极性为高
HAL_TIM_PWM_ConfigChannel(&TIM5_Handler,&TIM5_CH1Handler,TIM_CHANNEL_1);//配置TIM1通道2
//HAL_TIM_PWM_Start_IT(&TIM5_Handler,TIM_CHANNEL_1);//使用时打开
//HAL_TIM_PWM_Start(&TIM5_Handler,TIM_CHANNEL_1);//使用时打开
}
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
{
GPIO_InitTypeDef GPIO_Initure;
if(htim->Instance == TIM5)
{
__HAL_RCC_TIM5_CLK_ENABLE(); //
__HAL_RCC_GPIOH_CLK_ENABLE();
GPIO_Initure.Pin=GPIO_PIN_10;
GPIO_Initure.Mode=GPIO_MODE_AF_PP; //复用推完输出
GPIO_Initure.Pull=GPIO_PULLDOWN;
GPIO_Initure.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_Initure.Alternate=GPIO_AF2_TIM5; //
HAL_GPIO_Init(GPIOH,&GPIO_Initure);
HAL_NVIC_SetPriority(TIM5_IRQn,2,0); //
HAL_NVIC_EnableIRQ(TIM5_IRQn); //
}
} |
|