TIM_GetCounter(TIM5)和TIM_GetCapture1(TIM5)的区别

2019-07-20 06:23发布

今天学习电容式按键看到教程里的捕获超时返回CNT值用的是TIM_GetCounter();而之前的高电平捕获有另一个TIM_GetCapture1()获取定时器计数值。我自己想的这两个函数返回的值应该是一样的,从论坛搜索找不到要的答案,就改了一下例程使两个数通过串口输出比较一下。两个函数获取定时器计数值
                                CAP_VAL = TIM_GetCapture1(TIM5);                                counter_val = TIM_GetCounter(TIM5);

串口输出:
                printf("按键按下 %lld us ",temp);
                printf("CAP_VAL = %d us ",CAP_VAL);
                printf("counter_val = %d us ",counter_val);



结果:
定时器计数值 定时器计数值

可以看到两个值相差1、2us。



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
风平浪静
1楼-- · 2019-07-20 08:06
 精彩回答 2  元偷偷看……
风平浪静
2楼-- · 2019-07-20 10:00
 精彩回答 2  元偷偷看……
落落小北
3楼-- · 2019-07-20 13:10
风平浪静 发表于 2018-5-31 23:02
电容式按键的Cs和R取多大合适,我看原理图上并没有Cs这个器件。

Cs是触摸铜箔对地的电容,不用你连接,实际通过计算一般会在几十个pf左右吧
R是上拉电阻,例程中设置的位5.1M,之前查过,这个电阻最好为MΩ级别的

一周热门 更多>