各位大侠:
我用stm32定时器8输出PWM,定时器1设置成输入捕获,为什么每个PWM脉冲定时器1都要进中断,
我想设计成定时器1计数一定数量的脉冲个数后,再进中断执行,可以吗??
/* -----------------------------------------------------------------------/
TIM1 Configuration: 输入捕获
/ -----------------------------------------------------------------------*/
//--1-----计数器基本配置---------//
TIM_TimeBaseStructure.TIM_Period = (0x9000);//设置下一个更新事件装入活动的自动重装载寄存器周期的值
TIM_TimeBaseStructure.TIM_Prescaler = (0);//设置TIMx时钟频率除数的预分频值10k
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;//设置时钟分割
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//选择计数器模式
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x0;
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
//--2-----通道配置---------//
TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;//通道选择
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;//下降沿
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;//管脚与寄存器对应关系
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;//分频器
TIM_ICInitStructure.TIM_ICFilter = 0x0; //滤波设置,经历几个周期跳变认定波形稳定0x0~0xF
TIM_ICInit(TIM1, &TIM_ICInitStructure); //初始化
// TIM_PWMIConfig(TIM1, &TIM_ICInitStructure); //根据参数配置TIM外设信息
//--3-----时钟启动配置---------//
TIM_ITRxExternalClockConfig(TIM1,TIM_TS_ETRF);
// TIM_ETRClockMode2Config(TIM1, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0);
// TIM_SelectInputTrigger(TIM1, TIM_TS_ETRF); //选择输入触发源为外部触发
TIM_SelectSlaveMode(TIM1, TIM_SlaveMode_External1);//触发方式
TIM_SelectMasterSlaveMode(TIM1, TIM_MasterSlaveMode_Enable); //启动定时器的被动触发
TIM_ITConfig(TIM1, TIM_IT_CC1, ENABLE); //打开中断
TIM_Cmd(TIM1, DISABLE); //启动TIM1
|