stm32f407采集1Khz-4Mhz频率计算出采集频率,采用输入捕获只能采集到1Mhz左右,再往上频率就只能维持1Mhz,采用外部中断计数,配合定时器也是一样。有没有好办法解决?
楼主,看一下你的系统配置是不是168Mhz,在这个情况下输入捕获或者定时检测应该是没问题的。
由于测量频率较高,楼主可以使用每8个脉冲捕获一次的方式。 或者采用外部计数方式,使得测量脉冲作为定时器的时钟输入,再通过另一个定时器触发启动计数和停止,根据计数值来换算测量的频率。当然,这种方式的配置上略微复杂,但是可以测量比较高的频率。
STM32F407主频达168了,基于定时器的捕捉采集信号频率的话应该不止1MHz.当被捕捉信号频率较高时,你的捕捉中断的处理就要注意别冗长了,尤其第一次 进中断。另外,你可以考虑通过DMA读取CCR的数据,2次基于DMA完成中断来计算具体数据。
楼主,看一下你的系统配置是不是168Mhz,在这个情况下输入捕获或者定时检测应该是没问题的。 ...
频率是168M,不过采集到1M左右的时候再往上增加输入频率,采集频率没有变化
由于测量频率较高,楼主可以使用每8个脉冲捕获一次的方式。 或者采用外部计数方式,使得测量脉冲作为定时器 ...
外部中断计数的方式尝试过了,来一个上升沿开始计数,记录定时器时间,第二个上升沿再记录一个定时间时间,两个相减得到频率。不过也是低频1M左右,再往上的时候频率没有变化或者不准
楼主,是否可以考虑用DMA采集AD的方式测试一下,很多手持示波器和逻辑分析仪也用ST做,理论是没有问题的。
[md]外部中断计数的方式尝试过了,来一个上升沿开始计数,记录定时器时间,第二个上升沿再记录一个定时间 ...
1. 第一种方式是定时器捕获,自动保存计数器的值。由于频率高,可以设置8个脉冲捕获一次,拉开间隔,增加精度。 2. 第二种方式将你要测量的信号作为计数器的外部时钟,在固定时间内记录的多少数(来了多少个脉冲)。根据这个数值换算成频率。