高级会员

- 积分
- 597
- 金钱
- 597
- 注册时间
- 2019-8-22
- 在线时间
- 173 小时
|
10金钱
本帖最后由 CKJJJJ 于 2020-2-18 15:15 编辑
如题,我用TIM1的4通道比较输出功能,指定脉冲数后调用个函数停止单个通道输出脉冲。然而再次启动后前面脉冲没问题,反倒是最后一个出了问题。请问有大佬给解惑么?硬币奉上
void TIMx_PWM_OutPut(TIM_TypeDef* TIMx,uint16_t TIM_Channel,FunctionalState NewState)
{
if(TIM_Channel == 0)
return;
switch(TIM_Channel)
{
case 1:
if (NewState != DISABLE)
TIMx->CCER|=(1<<0);//打开通道1
else
TIMx->CCER&=0xfffe;//关闭通道1
TIM_ITConfig(TIMx,TIM_IT_CC1,NewState);
break;
case 2:
if (NewState != DISABLE)
TIMx->CCER|=(1<<4);//
else
TIMx->CCER&=0xffef;//
TIM_ITConfig(TIMx,TIM_IT_CC2,NewState);
break;
case 3:
if (NewState != DISABLE)
TIMx->CCER|=(1<<8);//
else
TIMx->CCER&=0xfeff;//
TIM_ITConfig(TIMx,TIM_IT_CC3,NewState);
break;
case 4:
if (NewState != DISABLE)
TIMx->CCER|=(1<<12);//
else
TIMx->CCER&=0xefff;//
TIM_ITConfig(TIMx,TIM_IT_CC4,NewState);
break;
default:
break;
}
}
|
|