打印
[STM32F1]

定时器输入捕获

[复制链接]
1116|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yxazxw|  楼主 | 2016-2-19 16:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么我设置的是通道4的上升沿捕获中断,但是现在却是按照定时器的计数频率进中断呢?我感觉是我的通道4采集的是定时器自己的计时的上升沿脉冲,这是怎么一回事啊?
   
   //定时器计时
        TIM_ClearITPendingBit(TIM2, TIM_IT_Update);           //清空中断
        TIM_TimeBaseStructure.TIM_Period = Period;        //装初值 ,范围 0--0xffff
        TIM_TimeBaseStructure.TIM_Prescaler = Prescaler;         //预分频值        72M/72,1uS一次计数
        TIM_TimeBaseStructure.TIM_ClockDivision = 0;         //时钟分割值
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;         //向上计数模式           0->2000
        TIM_TimeBaseInit(TIM2, & TIM_TimeBaseStructure);        //结构体初始化

   //输入捕获
        TIM_ICInitStructure.TIM_Channel = TIM_Channel_4;                     //通道4 ,如果设置直接映射就是TI1
        TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;  //捕获上升沿有效
        TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;//对应的中断映射  IC2映射到TI2上
        TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;                 //不分频          TI4是TIMx_CH4,因为是直连模式
        TIM_ICInitStructure.TIM_ICFilter = 0x0;                                                 //不滤波
        TIM_ICStructInit(&TIM_ICInitStructure);
       
//        TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_Trigger);                          //计数器在触发(TRGI)的上升沿开始
//        TIM_SelectMasterSlaveMode(TIM2, TIM_MasterSlaveMode_Enable);  //启动定时器的被动触发
       
        TIM_ITConfig(TIM2, TIM_IT_CC4 , ENABLE);         //使能输入捕获通道4的中断
        TIM_Cmd(TIM2, ENABLE);          //使能定时器2
}

void TIM2_IRQHandler(void)                   //B码每个码元10ms左右
{
        if(TIM_GetITStatus(TIM2,TIM_IT_CC4)!=RESET)
        {
                TIM_ClearITPendingBit(TIM2, TIM_IT_CC4);
                printf("TIM: %d 测试捕获\n",TIM_GetCapture4(TIM2));
        }
}
沙发
yxazxw|  楼主 | 2016-2-19 16:58 | 只看该作者
顶顶顶

使用特权

评论回复
板凳
Roderman_z| | 2016-2-19 17:06 | 只看该作者
定时器现在能工作吗?

使用特权

评论回复
地板
yxazxw|  楼主 | 2016-2-19 23:28 | 只看该作者
Roderman_z 发表于 2016-2-19 17:06
定时器现在能工作吗?

不好意思,晚上有事情刚刚看到,现在定时器能工作就是总是进中断,而且我清bo'u捕获的中断标志才能退出中断,我都不明白,输入捕获的输入引脚我是悬空的就是没有上升沿,应该不进中断才对啊,为什么现在总是随着计时器的上升沿进中断呢好像。大神,请教了

使用特权

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

本版积分规则

1

主题

4

帖子

0

粉丝