这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 嵌入式开发» STM32» stm32f103的I/O输出的速度到底能有多快呢?

共8条 1/1 1 跳转至

stm32f103的I/O输出的速度到底能有多快呢?

工程师
2021-06-20 21:55:13 打赏

大家周末好,我有个外围的器件是个串行接口。有片选、时钟、数据三根线构成,器件的时钟最快可以允许是25MHZ。我使用IO自己做个接口的函数,调用函数库 GPIO_ResetBits、GPIO_SetBits来控制IO输出,IO的初始化速度设置GPIO_Speed_50MHz。可是我实际测试,发现IO输出的速度最快只能到2MHZ,并且波形还不好。如果不放慢速度,时钟线输出的几乎是三角波。请问有人知道为什么吗?我怎么做才能达到25M的输出频率并且波形还好吗?




关键词: stm32f103 速度 I/O IO

工程师
2021-06-20 22:16:28 打赏
2楼

GPIO_Speed_50MHz。这并不能直接影响波形速度
更重要的是, 要用最快的指令来完成 IO 口输出.
可以说: 这么高的频率, 寄存器直接控制是唯一能达到的手段了.
关于: 时钟线输出的几乎是三角波, 那是负责电容太大的缘故, 解决办法是
1.通过布线等手段减少分布电容, 2. 采用缓冲驱动器增加驱动能力.


工程师
2021-06-20 22:24:10 打赏
3楼

以前好像有帖子说IO最快是18MHz,不要用GPIO_ResetBits、GPIO_SetBits这些库函数,速度会慢,直接操作寄存器速度能快


工程师
2021-06-20 22:28:46 打赏
4楼

这个一般用库,对速度敏感的话用寄存器,不过我也是常常在纠结这个问题的。


工程师
2021-06-20 22:33:18 打赏
5楼

要速度快,只能用汇编了!


工程师
2021-06-20 23:10:04 打赏
6楼

感谢分享


专家
2021-06-21 00:02:37 打赏
7楼

感谢楼主的分享,很实用了。


工程师
2021-06-21 00:11:12 打赏
8楼

感谢楼主的分享,很实用了。


共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]