在使用STM32F407驱动直流电机正反转,能不能使用TIM1的CH1驱动正转,CH1N驱动反转。正转时CH1输出PWM,CH1N脚保持低电平。反转时CH1N输出PWM,CH1脚保持低电平。由于个人水平低,把F4的PDF手册看了好几遍,也没有整明白可不可这样应用。如果可以,这块功能应该怎么实现,请各个大咖指点!
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分
用户手册仅供参考
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分
case 0: //电机静止
HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_2);
HAL_TIMEx_PWMN_Stop(&htim1, TIM_CHANNEL_2);
break;
case 1: //电机正转
sConfig.OCMode = TIM_OCMODE_PWM1;
sConfig.OCPolarity = TIM_OCPOLARITY_HIGH; //输出极性高电平
sConfig.OCNPolarity = TIM_OCPOLARITY_HIGH; //输出极性高电平
sConfig.OCFastMode = TIM_OCFAST_DISABLE;
sConfig.OCIdleState = TIM_OCIDLESTATE_RESET;
sConfig.OCNIdleState = TIM_OCNIDLESTATE_RESET;
sConfig.Pulse = TIMERCOUNTER * speed /100; //设置通道PWM值
if(HAL_TIM_PWM_ConfigChannel(&htim1, &sConfig, TIM_CHANNEL_2) != HAL_OK)
{
Error_Handler();//Configuration Error
}
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);
HAL_TIMEx_PWMN_Stop(&htim1, TIM_CHANNEL_2);
break;
case 2: //电机反转
sConfig.OCMode = TIM_OCMODE_PWM1;
sConfig.OCPolarity = TIM_OCPOLARITY_HIGH; //输出极性高电平
sConfig.OCNPolarity = TIM_OCPOLARITY_HIGH; //输出极性高电平
sConfig.OCFastMode = TIM_OCFAST_DISABLE;
sConfig.OCIdleState = TIM_OCIDLESTATE_RESET;
sConfig.OCNIdleState = TIM_OCNIDLESTATE_RESET;
sConfig.Pulse = TIMERCOUNTER * speed /100; //设置通道PWM值
if(HAL_TIM_PWM_ConfigChannel(&htim1, &sConfig, TIM_CHANNEL_2) != HAL_OK)
{
Error_Handler();//Configuration Error
}
HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_2);
HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_2);
break;
评分
查看全部评分
评分
查看全部评分