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

stm32f030测10kHz左右的频率用这个方法是否可行?

[复制链接]
zddlth 提问时间:2016-3-10 19:10 /
      需求是测量6路10kHz左右最大值5V占空比50%的方波信号,之前用Arduino UNO 也就是avr atmega328p 的程序来测频率,实现了一路的测量。
      它的方法就是定时器以系统频率(16MHz)一直计数,利用外部中断上升沿进中断,让定时器清零,下一个上升沿读取计数值后再清零,测量的频率就是系统频率除以这个计数值。
      因为我只要测10k左右,计数器不会溢出,所以就没设置定时器分频系数,但是avr单片机外部中断端口只有两个,就考虑用153之类的数据选择器来控制测量某一路信号。后来发现stm32f0的价格便宜,而且IO口可以自由设置外部中断,所以想把这个方法移植到m0上,不知道是否可行?我大概的构想就是设置同优先级的6个外部中断,在主函数里面循环对他们依次使能关闭延时,最后读出每一路的计数值计算各路频率。
      希望各位大神指点,或者比较一下这种方案和用数据选择器相比哪个更经济准确?谢谢

收藏 评论4 发布时间:2016-3-10 19:10

举报

4个回答
xmshao 回答时间:2016-3-11 11:10:14
用输入捕捉测量
结合各选择器切换 挺好的 呵呵

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

Inc_brza 回答时间:2016-3-11 09:38:18
IO翻转速率够,不成问题
adlu 回答时间:2016-3-11 16:31:54
3楼正解!
多路测频最好用TIMER的输入捕获功能。
如果用外部中断,有可能会由于中断函数的运行占用时间使得测频误差增大。
zddlth 回答时间:2016-3-14 09:25:46
adlu 发表于 2016-3-11 16:31
3楼正解!
多路测频最好用TIMER的输入捕获功能。
如果用外部中断,有可能会由于中断函数的运行占用时间使得 ...

正在学习输入捕获的章节,谢谢解惑

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版