请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f407高频信号采集计算频率

[复制链接]
杨元忠 提问时间:2022-1-13 10:10 / 未解决
收藏 评论8 发布时间:2022-1-13 10:10

举报

8个回答
杨元忠 回答时间:2022-1-13 10:12:21

stm32f407采集1Khz-4Mhz频率计算出采集频率,采用输入捕获只能采集到1Mhz左右,再往上频率就只能维持1Mhz,采用外部中断计数,配合定时器也是一样。有没有好办法解决?

废鱼 回答时间:2022-1-13 11:11:08

楼主,看一下你的系统配置是不是168Mhz,在这个情况下输入捕获或者定时检测应该是没问题的。

butterflyspring 回答时间:2022-1-13 11:35:24
由于测量频率较高,楼主可以使用每8个脉冲捕获一次的方式。
或者采用外部计数方式,使得测量脉冲作为定时器的时钟输入,再通过另一个定时器触发启动计数和停止,根据计数值来换算测量的频率。当然,这种方式的配置上略微复杂,但是可以测量比较高的频率。
xmshao 回答时间:2022-1-13 11:38:25
STM32F407主频达168了,基于定时器的捕捉采集信号频率的话应该不止1MHz.当被捕捉信号频率较高时,你的捕捉中断的处理就要注意别冗长了,尤其第一次
进中断。另外,你可以考虑通过DMA读取CCR的数据,2次基于DMA完成中断来计算具体数据。
杨元忠 回答时间:2022-1-13 13:29:47

废鱼 发表于 2022-1-13 11:11
楼主,看一下你的系统配置是不是168Mhz,在这个情况下输入捕获或者定时检测应该是没问题的。
...

频率是168M,不过采集到1M左右的时候再往上增加输入频率,采集频率没有变化

杨元忠 回答时间:2022-1-13 13:32:30

butterflyspring 发表于 2022-1-13 11:35
由于测量频率较高,楼主可以使用每8个脉冲捕获一次的方式。
或者采用外部计数方式,使得测量脉冲作为定时器 ...

外部中断计数的方式尝试过了,来一个上升沿开始计数,记录定时器时间,第二个上升沿再记录一个定时间时间,两个相减得到频率。不过也是低频1M左右,再往上的时候频率没有变化或者不准

废鱼 回答时间:2022-1-13 14:12:09

楼主,是否可以考虑用DMA采集AD的方式测试一下,很多手持示波器和逻辑分析仪也用ST做,理论是没有问题的。

butterflyspring 回答时间:2022-1-13 14:28:45
杨元忠 发表于 2022-1-13 13:32
[md]外部中断计数的方式尝试过了,来一个上升沿开始计数,记录定时器时间,第二个上升沿再记录一个定时间 ...

1. 第一种方式是定时器捕获,自动保存计数器的值。由于频率高,可以设置8个脉冲捕获一次,拉开间隔,增加精度。
2. 第二种方式将你要测量的信号作为计数器的外部时钟,在固定时间内记录的多少数(来了多少个脉冲)。根据这个数值换算成频率。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版