void TIM3CH2_jishu_Config(void)
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
TIM_CounterModeConfig(TIM3,TIM_CounterMode_Up);
TIM_SetAutoreload(TIM3,9);
TIM_TIxExternalClockConfig(TIM3,TIM_TIxExternalCLK1Source_TI2,TIM_ICPolarity_Rising,0);
// TIM3->CCMR1|=1<<8;
// TIM3->SMCR|=0x07;
// TIM3->SMCR|=0x60;
// TIM3->CCER|=1<<4;
// TIM3->CCER&=~(1<<5);
TIM_Cmd(TIM3,ENABLE);
TIM_ITConfig(TIM3,TIM_IT_CC2|TIM_IT_Update,ENABLE); //为什么是TIM_IT_CC2
}
这是我的配置代码,测试可以实现TIM3 CH2通道计数,库函数TIN_TIxExternalClockConfig()和我注释掉的代码是一个作用。
下面是摘自STM32中文手册264页
例如,要配置向上计数器在T12输入端的上升沿计数,使用下列步骤:
1. 配置TIMx_CCMR1寄存器CC2S=’01’,配置通道2检测TI2输入的上升沿
2. 配置TIMx_CCMR1寄存器的IC2F[3:0],选择输入滤波器带宽(如果不需要滤波器,保持
IC2F=0000)
注: 捕获预分频器不用作触发,所以不需要对它进行配置
3. 配置TIMx_CCER寄存器的CC2P=’0’,选定上升沿极性
4. 配置TIMx_SMCR寄存器的SMS=’111’,选择定时器外部时钟模式1
5. 配置TIMx_SMCR寄存器中的TS=’110’,选定TI2作为触发输入源
6. 设置TIMx_CR1寄存器的CEN=’1’,启动计数器
当上升沿出现在TI2,计数器计数一次,且TIF标志被设置。
现在我有两个问题不太明白
1.手册里说的是上升沿出现时TIF标志被置位,可是我的代码运行时却是CC2IF被置位也就是说进的中断和手册里说的不一样,我的进的是捕获中断,好奇怪
2.手册里没有说要把CCER寄存器的CC2E位置1,可是我发现不置1的话计不了数,CC2E位的作用是使能捕获,这里好像不需要捕获吧,好奇怪
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
亲,设置外部输入脉冲的检测边沿(上升沿、下降沿)、外部时钟模式1(上升沿驱动计数器)对最后输出的波形分别有什么影响?
一周热门 更多>