1、你前期出问题,可能与输入滤波有关,如果你待测信号不超过2MHz,则输入使用【0011: fSAMPLING=fCK_INT, N=8】滤波可能是一个不错的选择。
“ST的这些功能经常有这种问题”我没遇到过,STM32的定时器各种模式我基本都使用过。2、你输入捕捉效率太低了,另外,如果真的是高频的话,程序中应当动态根据测得的频率值来修改PSC,以实现动态精度适应还有,输入捕捉真心不需要每次都进中断,1MHz的信号,你每秒捕捉100万次,值都是一样有意义吗?是否可以每秒捕捉10次取平均值?把细节处理好就行了。
思路三:输入捕获
思路:一般来说,对STM32有一定了解的坛友们在测量频率的问题上往往都会想到利用输入捕获。首先设定为上升沿触发,当进入中断之后(rising)记录与上次中断(rising_last)之间的间隔(周期,其倒数就是频率)。再设定为下降沿,进入中断之后与上升沿时刻之差即为高电平时间(falling-rising_last),高电平时间除周期即为占空比。
该方法尤其是在中低频(