仿照测高电平时间的程序写了main.c,但跟实际结果相差较大,想得到一个详细的程序指导。
1.开启一个外部中断行输入捕获,设置一个变量,每检测到一个上升沿就加一
2.再开启一个定时器设置比如说1S,1S后将外部中断记得数拿出来
3.这样就得到了1S时间的脉冲数,进而得到频率
首先要确定频率范围,频率较低的时候,可以用定时器中断对方波进行采样,中断频率越高精度越高。如果频率较高就需要连续采样,因为中断耗时会导致误差很大。当然不管哪种方式,都是频率越高,误差越大
stm可以用高级定时器输入捕获,获取脉宽,然后计算出频率