久芯网

如何提高STM32 GPIO 输出速度?

avatar winamp123 提问时间: 2023-09-25 08:32:05 / 未解决
由于应用需要,用GPIO输出高低电平产生脉冲,通过软件控制GPIO输出翻转。用的是STM32F412, APB2最高达到100M,  可实际GPIO输出最多只能达到10M 频率。 请问能继续提高GPIO输出速度吗? 能否达到20M?
谢谢回复。




如需获得 STM32 等器件的更多信息,请点击链接或 点击此处 联系在线客服!

6个回答
  • avatar laidaihua
    回答时间: 2023-09-25 08:54:03

    这个要求好奇葩,你真要这样,用逻辑门电路搭一个就完事儿了,还要STM32干嘛?

  • avatar radio2radio
    回答时间: 2023-09-25 09:26:06

    你需要那么高的输出频率,是不能靠软件反转GPIO来做的,即便可以做到,MCU也忙到干不了多少其他事情了。合理的做法,就是用硬件把时钟分频到你需要的频率直接输出。 比如,某些脚位是可以输出时钟分频信号的,这个IC有没有,我不确定。 用定时器,是否可以做到那么高的频率,就要做一个出来,试一试。

  • avatar goyhuan
    回答时间: 2023-09-25 09:45:52

    你想输出作为时钟用吗?又没有用到MCO脚是这样吗?

  • avatar 李康1202
    回答时间: 2023-09-25 10:09:29

    定时器PWM可以试一下

  • avatar winamp123
    回答时间: 2023-09-25 10:35:18

    谢谢以上的回复。这个应用是一个GPIO 固定个数CLK输出,另外一个GPIO读取输入的。这样通过MCO,PWM还不合适,只能软件模拟。

  • avatar 七哥
    回答时间: 2023-09-25 11:00:23
    winamp123 发表于 2020-7-31 09:45
    谢谢以上的回复。这个应用是一个GPIO 固定个数CLK输出,另外一个GPIO读取输入的。这样通过MCO,PWM还不合适 ...

    可以考虑用DMA,DMA驱动IO是可以的。写过WS2812的程序,一串点60个灯。忘了用的是DMA驱动SPI,还是DMA驱动定时器了。

会员中心 微信客服
客服
回到顶部