在线时间17 小时
UID329129
ST金币122
蝴蝶豆2
注册时间2011-11-18
该用户从未签到
中级会员
- 最后登录
- 2022-9-14
|
楼主 |
发表于 2018-6-6 14:38:59
|
显示全部楼层
感谢toofree,问题解决,能够实现,下面是实现代码:
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; |
评分
-
查看全部评分
|