初级会员

- 积分
- 92
- 金钱
- 92
- 注册时间
- 2019-11-22
- 在线时间
- 17 小时
|
1金钱
请问各位大佬,F429IGT6的PA1上有TIM2_CH2和TIM5_CH2,我每个都单独试了,都输出不了PWM波,这是为什么啊,F429的TIM5和TIM2都是通用定时器啊,难道是在复用那块还要进行什么设置么
TIM_HandleTypeDef TIM5_Handler; //定时器5PWM句柄
TIM_OC_InitTypeDef TIM5_CH2Handler; //定时器5通道2句柄
void TIM5_PWM_Init(u32 arr,u32 psc)
{
TIM5_Handler.Instance=TIM5; //定时器5
TIM5_Handler.Init.Prescaler=psc; //定时器分频
TIM5_Handler.Init.CounterMode=TIM_COUNTERMODE_UP;//向上计数模式
TIM5_Handler.Init.Period=arr; //自动重装载值
TIM5_Handler.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;
HAL_TIM_PWM_Init(&TIM5_Handler); //初始化PWM
TIM5_CH2Handler.OCMode=TIM_OCMODE_PWM1; //模式选择PWM1
TIM5_CH2Handler.Pulse=arr/2; //设置比较值,此值用来确定占空比,默认比较值为自动重装载值的一半,即占空比为50%
TIM5_CH2Handler.OCPolarity=TIM_OCPOLARITY_LOW; //输出比较极性为低
HAL_TIM_PWM_ConfigChannel(&TIM5_Handler,&TIM5_CH2Handler,TIM_CHANNEL_2);//配置TIM5通道2
HAL_TIM_PWM_Start(&TIM5_Handler,TIM_CHANNEL_2);//开启PWM通道2
}
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
{
GPIO_InitTypeDef GPIO_Initure;
__HAL_RCC_TIM5_CLK_ENABLE(); //使能定时器5
__HAL_RCC_GPIOA_CLK_ENABLE(); //开启GPIOA时钟
GPIO_Initure.Pin=GPIO_PIN_1; //PA1
GPIO_Initure.Mode=GPIO_MODE_AF_PP; //复用推挽输出
GPIO_Initure.Pull=GPIO_PULLUP; //上拉
GPIO_Initure.Speed=GPIO_SPEED_HIGH; //高速
GPIO_Initure.Alternate= GPIO_AF2_TIM5; //PA1复用为TIM5_CH2
HAL_GPIO_Init(GPIOA,&GPIO_Initure);
}
|
|