今天学习电容式按键看到教程里的捕获超时返回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。
Cs是触摸铜箔对地的电容,不用你连接,实际通过计算一般会在几十个pf左右吧
R是上拉电阻,例程中设置的位5.1M,之前查过,这个电阻最好为MΩ级别的
一周热门 更多>