打印

定时器捕捉外部中断频率

[复制链接]
1198|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huangfeng33|  楼主 | 2014-6-3 09:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家有谁用过定时器捕捉外部中断频率的呢?不知道我的错在哪里了,可以帮我看看吗?
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    TIM_ICInitTypeDef  TIM_ICInitStructure;



    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3 , ENABLE);
    TIM_DeInit(TIM3);
    TIM_TimeBaseStructure.TIM_Period=65535;                   /* 自动重装载寄存器周期的值(计数值) */
    /* 累计 TIM_Period个频率后产生一个更新或者中断 */
    TIM_TimeBaseStructure.TIM_Prescaler= (72 - 1);             /* 时钟预分频数 72M/72 */
    TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;          /* 采样分频 */
    TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; /* 向上计数模式 */
    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);



    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(TIM3, &TIM_ICInitStructure);


    TIM_SelectInputTrigger(TIM3, TIM_TS_TI1FP1); //选择IC2为始终触发源

    //TIM_SelectInputTrigger(TIM3, TIM_TS_TI1FP1); //选择IC2为始终触发源



    TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Reset);//TIM从模式:触发信号的上升沿重新初始化计数器和触发寄存器的更新事件
    TIM_SelectMasterSlaveMode(TIM3, TIM_MasterSlaveMode_Enable); //启动定时器的被动触发


   
    TIM_Cmd(TIM3, ENABLE);                                 //启动TIM2        
    TIM_ITConfig(TIM3, TIM_IT_CC1, ENABLE);     //打开中断使能CC1中断请求

   
    TIM_ClearFlag(TIM3, TIM_FLAG_Update);              /* 清除溢出中断标志 */
    TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
    TIM_Cmd(TIM3, DISABLE);         /* 开启时钟 */

   
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3 , DISABLE);         /*先关闭等待使用*/   

这是定时器3的设置
捕捉PB4中断频率的变化。
沙发
mmuuss586| | 2014-6-3 12:31 | 只看该作者
加上这句试下TIM_ITConfig(TIM3, TIM_IT_CC1, ENABLE);

使用特权

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

本版积分规则

506

主题

2446

帖子

8

粉丝