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

如何提高STM32 GPIO 输出速度?

[复制链接]
winamp123 提问时间:2020-7-30 19:32 /
由于应用需要,用GPIO输出高低电平产生脉冲,通过软件控制GPIO输出翻转。用的是STM32F412, APB2最高达到100M,  可实际GPIO输出最多只能达到10M 频率。 请问能继续提高GPIO输出速度吗? 能否达到20M?
谢谢回复。



收藏 评论6 发布时间:2020-7-30 19:32

举报

6个回答
laidaihua 回答时间:2020-8-3 00:41:28
这个要求好奇葩,你真要这样,用逻辑门电路搭一个就完事儿了,还要STM32干嘛?
radio2radio 回答时间:2020-7-30 22:23:03
你需要那么高的输出频率,是不能靠软件反转GPIO来做的,即便可以做到,MCU也忙到干不了多少其他事情了。合理的做法,就是用硬件把时钟分频到你需要的频率直接输出。

比如,某些脚位是可以输出时钟分频信号的,这个IC有没有,我不确定。
用定时器,是否可以做到那么高的频率,就要做一个出来,试一试。
乐天乐 回答时间:2020-7-31 08:13:21
你想输出作为时钟用吗?又没有用到MCO脚是这样吗?
likang1202 回答时间:2020-7-31 09:07:49
定时器PWM可以试一下
mark.png
winamp123 回答时间:2020-7-31 09:45:34
谢谢以上的回复。这个应用是一个GPIO 固定个数CLK输出,另外一个GPIO读取输入的。这样通过MCO,PWM还不合适,只能软件模拟。
toofree 回答时间:2020-7-31 11:10:43
winamp123 发表于 2020-7-31 09:45
谢谢以上的回复。这个应用是一个GPIO 固定个数CLK输出,另外一个GPIO读取输入的。这样通过MCO,PWM还不合适 ...

可以考虑用DMA,DMA驱动IO是可以的。写过WS2812的程序,一串点60个灯。忘了用的是DMA驱动SPI,还是DMA驱动定时器了。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版