F407同时捕获高低电平问题

2019-07-20 19:01发布

本帖最后由 canghaiwuhen 于 2016-11-7 17:34 编辑

用原子哥的例程捕获高电平时间没问题,将上升沿和下降沿互换捕获低电平时间也没问题
但想同时捕获高低电平时间该怎么做?
TIM2CH1_CAPTURE_VAL1 捕获的高电平时间没问题,但TIM2CH1_CAPTURE_VAL2捕获的低电平时间偏差很大

[mw_shl_code=c,true]                if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET)//捕获1发生捕获事件
                {
                        if (TIM2CH1_CAPTURE_STA & 0X40)                //捕获到一个下降沿                 
                        {
                                TIM2CH1_CAPTURE_STA |= 0X80;                //标记成功捕获到一次高电平脉宽
                                TIM2CH1_CAPTURE_VAL1 = TIM_GetCapture1(TIM2);//获取当前的捕获值.
                                TIM_SetCounter(TIM2, 0);
                                TIM_OC1PolarityConfig(TIM2, TIM_ICPolarity_Rising); //CC1P=0 设置为上升沿捕获
                        }
                        else                                                                  //还未开始,第一次捕获上升沿
                        {
                                //TIM2CH1_CAPTURE_STA = 0;                        //清空
                                //TIM2CH1_CAPTURE_VAL = 0;
                                TIM2CH1_CAPTURE_STA |= 0X40;                //标记捕获到了上升沿
                                TIM2CH1_CAPTURE_VAL2 = TIM_GetCapture1(TIM2);//获取当前的捕获值.
                                //TIM_Cmd(TIM2, DISABLE);         //关闭定时器2
                                TIM_SetCounter(TIM2, 0);
                                TIM_OC1PolarityConfig(TIM2, TIM_ICPolarity_Falling);                //CC1P=1 设置为下降沿捕获
                                //TIM_Cmd(TIM2, ENABLE);         //使能定时器2
                        }[/mw_shl_code]
补充:只有一个IO口,不能用双引脚双沿捕获方式


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
canghaiwuhen
1楼-- · 2019-07-20 21:03
 精彩回答 2  元偷偷看……
jermy_z
2楼-- · 2019-07-21 02:54
什么叫同时捕捉高低电平?时间差为高低电平时间间隔,你这同时捕获高低电平,理解不了
canghaiwuhen
3楼-- · 2019-07-21 08:25
jermy_z 发表于 2016-11-7 17:12
什么叫同时捕捉高低电平?时间差为高低电平时间间隔,你这同时捕获高低电平,理解不了

就是既要捕获高电平时间,也要捕获低电平时间
jermy_z
4楼-- · 2019-07-21 14:03
方向改变,需要时间的吧,也许是耗在这上面了,你误差多大?
龙之谷
5楼-- · 2019-07-21 14:04
1.尽量减少处理代码
2.一旦捕获先设置捕获模式等再进行其他数据处理
canghaiwuhen
6楼-- · 2019-07-21 17:35
 精彩回答 2  元偷偷看……

一周热门 更多>