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

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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版