基本配置不用讲,现在问题是,调用HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_1);暂停PWM后想让IO电频输出高,有多少方案。 看到网上说配置sConfigOC.OCIdleState = TIM_OCIDLESTATE_SET; 并没有效果
评分
查看全部评分
评分
查看全部评分
搞定,还是通过修改占空比 0%的方式实现
{
TIM_OC_InitTypeDef sConfigOC;
HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_1);
if(a==0)
{
// HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_1);
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 999;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
sConfigOC.OCIdleState = TIM_OCIDLESTATE_SET;
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1);
}
else
{
// HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 499;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
sConfigOC.OCIdleState = TIM_OCIDLESTATE_SET;
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1);
}
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);
}
评分
查看全部评分
HAL竟然没有提供函数,得自己写寄存器