初级会员

- 积分
- 132
- 金钱
- 132
- 注册时间
- 2014-8-26
- 在线时间
- 0 小时
|
5金钱
TIM_ICInitStructure.TIM_Channel=TIM_Channel_2; //选择通道
TIM_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI; //选择输入
TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Rising; //选择输入活动沿
TIM_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV1; //选择输入捕获预分频器
TIM_ICInitStructure.TIM_ICFilter=0x00; //选择输入捕获预分频器
TIM_ICInit(TIMx,&TIM_ICInitStructure);
TIM_TimeBaseStructure.TIM_Period=5000; //设置预转载值
TIM_TimeBaseStructure.TIM_Prescaler=0x00; //设置预分频
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //设置定时器的计数模式
TIM_TimeBaseInit(TIMx,&TIM_TimeBaseStructure);
//TIM_SelectSlaveMode(TIMx,TIM_SlaveMode_External1); //选择触发的上升沿为计数器时钟
//TIM_SelectInputTrigger(TIMx,TIM_TS_TI2FP2); //选择定时器的输入触发源为经滤波定时器输入2
TIM_SelectInputTrigger(TIMx,TIM_TS_TI1FP1);
if(ch==1)
{
Pulse_Value=TIM_GetCapture1(TIMx);
}
if(ch==2)
{
Pulse_Value=TIM_GetCapture2(TIMx);
}
if(ch==3)
{
Pulse_Value=TIM_GetCapture3(TIMx);
}
if(ch==4)
{
Pulse_Value=TIM_GetCapture4(TIMx);
}
TIM_Cmd(TIMx,ENABLE);
为什么 这一条语句(TIM_SelectSlaveMode(TIMx,TIM_SlaveMode_External1); //选择触发的上升沿为计数器时钟)一定要屏蔽掉程序才能正常执行呢?可是我希望用外部时钟模式一,这是为什么,难道由TI2FP2输入的一定是外部时钟模式一,所以不用设置了吗?还有就是我是想准确计脉冲数的话,这一条语句中的TIM_TimeBaseStructure.TIM_Prescaler=0x00; //设置预分频,预分频值一定要为0x00吗?(在外部时钟模式一的情况下)。谢谢,紧急
|
|