打印

请教个关于TIM3的通道3捕获外部脉冲的问题

[复制链接]
3705|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mazhanping123|  楼主 | 2010-7-26 20:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想用通用定时器TIM3的通道3来测量一个外部方波的频率,却不知道应该怎么设置。 我的程序:
void  TIM3_Configuration(void)
{
  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  TIM_ICInitTypeDef        TIM_ICInitStructure;
  TIM_DeInit(TIM3);

  TIM_TimeBaseStructure.TIM_Prescaler = 0x0;      //时钟预分频得CK_INT时钟提供给计数器  APB2时钟/(n+1)  n=1~65536
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数模式
  TIM_TimeBaseStructure.TIM_Period = 0xFFFF;      //自动重装载值,值越小频率越大,值越大频率越小
  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;  //时钟倍频因子,输出时钟供给死区发生器等
  TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);      //初始化

  TIM_ICInitStructure.TIM_ICMode           = TIM_ICMode_ICAP;       //配置为输入捕获模式  
  TIM_ICInitStructure.TIM_Channel          = TIM_Channel_3;           //选择通道3      
  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;   
     
  TIM_ICInit(TIM3,&TIM_ICInitStructure);        //IC1通道初始化
   /* Select the TIM2 Input Trigger: TI2FP2 【输入触发源选择】*/
TIM_SelectInputTrigger(TIM3, TIM_TS_TI3FP3);                      //参考TIM结构图选择滤波后的TI1输入作为触发源,触发下面程序的复位
  /* Select the slave Mode: Reset Mode */
  TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Reset);          //复位模式-选中的触发输入(TRGI)的上升沿初始化计数器,并且产生一个更新线号
  /* Enable the Master/Slave Mode */
  TIM_SelectMasterSlaveMode(TIM3, TIM_MasterSlaveMode_Enable);        
//主从模式选择
  TIM_Cmd(TIM3,ENABLE);            //使能定时器3
  //TIM_CtrlPWMOutputs(ENABLE); //使能PWM输出
}

可是触发源根本没有这一项啊,我要怎么实现用外部脉冲作为触发呢?
沙发
ST_ARM| | 2010-7-27 09:31 | 只看该作者
测量外部方波的频率只能使用通道1和通道2!

使用特权

评论回复
板凳
mazhanping123|  楼主 | 2010-7-27 10:52 | 只看该作者
谢谢指点!

使用特权

评论回复
地板
mazhanping123|  楼主 | 2010-7-28 07:23 | 只看该作者
能否详细解释下为什么,还是有点晕,不是说四个通道都有捕获功能吗?

使用特权

评论回复
5
香水城| | 2010-7-28 08:59 | 只看该作者
如果使用定时器的PWM输入模式,测量外部方波的频率,只能使用通道1和通道2。

如果只使用一个通道,通过捕获上升沿和下降沿的时间,再自己计算外部方波的频率,则可以使用定时器的4个通道中的任意一个通道。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

55

帖子

0

粉丝