打印
[STM32F1]

stm32f103 IO 输出的速度有多快?

[复制链接]
6751|44
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
andiwxz|  楼主 | 2013-11-25 14:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位:
       我有个外围的器件是个串行接口。有片选、时钟、数据三根线构成,器件的时钟最快可以允许是25MHZ。我使用IO自己做个接口的函数,调用函数库 GPIO_ResetBits、GPIO_SetBits来控制IO输出,IO的初始化速度设置GPIO_Speed_50MHz。可是我实际测试,发现IO输出的速度最快只能到2MHZ,并且波形还不好。如果不放慢速度,时钟线输出的几乎是三角波。请问有人知道为什么吗?我怎么做才能达到25M的输出频率并且波形还好吗?
沙发
sonicll| | 2013-11-25 14:06 | 只看该作者
以前好像有帖子说IO最快是18MHz,不要用GPIO_ResetBits、GPIO_SetBits这些库函数,速度会慢,直接操作寄存器速度能快

使用特权

评论回复
板凳
tianli1980| | 2013-11-25 15:59 | 只看该作者
这个一般用库,对速度敏感的话用寄存器,不过我也是常常在纠结这个问题的。

使用特权

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

使用特权

评论回复
5
liang118038l| | 2021-6-19 17:17 | 只看该作者
sonicll 发表于 2013-11-25 14:06
以前好像有帖子说IO最快是18MHz,不要用GPIO_ResetBits、GPIO_SetBits这些库函数,速度会慢,直接操作寄存 ...

问题是有人测过SPⅠ1能达到36MHz的难道io翻转的速度还会不一样的??

使用特权

评论回复
6
会飞的大葱| | 2021-6-22 15:49 | 只看该作者
IO配置的 Speed,影响的是上升沿的斜率

想通过IO输出高频率有以下几种方式
1、循环写GPIO的输出寄存器
2、通过TIM 输出PWM
3、通过DMA搬运数据到GPIO输出寄存器(可以M2M,也可以用TIM触发)

使用特权

评论回复
7
注孤终| | 2021-6-28 13:53 | 只看该作者
一般使用50MHz

使用特权

评论回复
8
b838899| | 2021-6-28 14:08 | 只看该作者

要看是不是低功耗产品,低功耗产品越慢越好。。

使用特权

评论回复
9
黑心单片机| | 2021-6-30 10:16 | 只看该作者
库函数的执行效率太低,我在需要高速应用都是直接用寄存器,速度会快几倍

使用特权

评论回复
10
tail066| | 2021-6-30 17:09 | 只看该作者
时钟线上带电容么?

使用特权

评论回复
11
SantaBunny| | 2023-3-7 20:43 | 只看该作者
试下把IO引脚并在一起,对应引脚初始化成对应外设,并在一起的另外没用到引脚初始化成高阻输入。

使用特权

评论回复
12
yufe| | 2023-7-13 23:42 | 只看该作者
以前好像有帖子说IO最快是18MHz

使用特权

评论回复
13
llia| | 2023-7-13 23:43 | 只看该作者
不要用GPIO_ResetBits、GPIO_SetBits这些库函数,速度会慢,直接操作寄存器速度能快

使用特权

评论回复
14
wangpe| | 2023-7-13 23:45 | 只看该作者
这个一般用库,对速度敏感的话用寄存器,不过我也是常常在纠结这个问题的。

使用特权

评论回复
15
langgq| | 2023-7-13 23:46 | 只看该作者
GPIO_Speed_50MHz。这并不能直接影响波形速度

使用特权

评论回复
16
wangzsa| | 2023-7-13 23:47 | 只看该作者
更重要的是, 要用最快的指令来完成 IO 口输出.

使用特权

评论回复
17
zhuww| | 2023-7-13 23:48 | 只看该作者
这么高的频率, 寄存器直接控制是唯一能达到的手段了.

使用特权

评论回复
18
zhanglli| | 2023-7-13 23:50 | 只看该作者
时钟线输出的几乎是三角波, 那是负责电容太大的缘故

使用特权

评论回复
19
zwll| | 2023-7-18 22:58 | 只看该作者
通过布线等手段减少分布电容

使用特权

评论回复
20
chuxh| | 2023-7-18 23:00 | 只看该作者
采用缓冲驱动器增加驱动能力.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

166

主题

258

帖子

3

粉丝