初级会员

- 积分
- 65
- 金钱
- 65
- 注册时间
- 2012-9-6
- 在线时间
- 0 小时
|
我的程序如下;
TIM_ICInitStructure.TIM_Channel = TIM_Channel_2;
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
TIM_SelectInputTrigger(TIM2, TIM_TS_TI2FP2); //选择IC2为始终触发源
TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_Reset);//TIM从模式设置为复位模式:触发信号的上升沿重新初始化计数器和触发寄存器的更新事件
TIM_SelectMasterSlaveMode(TIM2, TIM_MasterSlaveMode_Enable); //启动复位模式stm32输入捕获模式中;
实现机理如下:
1.首先要知道,为了实现pwm输入模式,TIM2占用了2各通道。第2通道对应引脚的变化可以同时被第1通道和第2通道检测,其中第一通道已经被设置为从机。(注意:如何快速的辨别主机和从机,有如下规则,如果设置的是第二通道的输入捕获功能,则余下的就为从机。)
2.假设输入的pwm信号从低电平开始跳变,则在第一个上升沿来临时,第一和二通道同时检测到这个上升沿。而从机模式设置为复位模式,所以将TIM2的计数值复位置零。(注意此时并不能产生中断请求)
此时为什么不能产生中断
3.按照pwm信号的规律,下一个到来的电平为下降沿,该下降沿到达第一通道时发生捕获事件,将当前计数值存到捕获比较寄存器中记为CCR1.
我只设置了上升沿触发中断,在这里为甚么会出现中断
4.接着是第二个上升沿,此时通道2发生捕获事件,,将当前计数值存到捕获比较寄存器中记为CCR2. |
|