打印

STM32的GPIO输出SPEED怎么设置?

[复制链接]
5666|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
YUCHUN0607|  楼主 | 2010-12-2 08:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 YUCHUN0607 于 2010-12-2 08:23 编辑

如题,
假如我实际的输出速度与设置的不符会产生什么结果?
另外,当设置成输入时,怎么设置是上拉,怎么设置是下拉?
沙发
IJK| | 2010-12-2 10:07 | 只看该作者
如题,
假如我实际的输出速度与设置的不符会产生什么结果?
另外,当设置成输入时,怎么设置是上拉,怎么设置是下拉?
YUCHUN0607 发表于 2010-12-2 08:17


当设置成输入时,怎么设置是上拉,怎么设置是下拉?
这个容易,建议用STM32的固件库(FWLib)。

使用特权

评论回复
板凳
zddxmu| | 2010-12-2 10:27 | 只看该作者
在stm8s系列的manual里,GPIO的速度设置是靠CR寄存器,STM32你查下GPIO的寄存器吧

使用特权

评论回复
地板
jgphu| | 2010-12-2 11:31 | 只看该作者
还是好好看看SPEC吧,上面说的很清楚的

使用特权

评论回复
5
YUCHUN0607|  楼主 | 2010-12-2 11:43 | 只看该作者
当设置成输入时,怎么设置是上拉,怎么设置是下拉?
这个容易,建议用STM32的固件库(FWLib)。
IJK 发表于 2010-12-2 10:07

只说了GPIO_IPD是设置成上/下拉输入模式,那到底是上拉还是下拉啊?

使用特权

评论回复
6
YUCHUN0607|  楼主 | 2010-12-2 11:46 | 只看该作者
在stm8s系列的manual里,GPIO的速度设置是靠CR寄存器,STM32你查下GPIO的寄存器吧
zddxmu 发表于 2010-12-2 10:27

我现在的问题是假如我的输出速度很慢,但我设置成了50M模式;或者我速度很快,但是我设成了慢速模式,这样会发生什么情况

使用特权

评论回复
7
IJK| | 2010-12-2 11:46 | 只看该作者
只说了GPIO_IPD是设置成上/下拉输入模式,那到底是上拉还是下拉啊?
YUCHUN0607 发表于 2010-12-2 11:43


印象里应该既可以设置上拉、也可以设置下拉,具体情况可以看reference manual(参考手册),也可以参考固件库

使用特权

评论回复
8
YUCHUN0607|  楼主 | 2010-12-2 11:46 | 只看该作者
还是好好看看SPEC吧,上面说的很清楚的
jgphu 发表于 2010-12-2 11:31

SPEC是什么?

使用特权

评论回复
9
vigia| | 2010-12-2 12:02 | 只看该作者
我现在的问题是假如我的输出速度很慢,但我设置成了50M模式;或者我速度很快,但是我设成了慢速模式,这样会发生什么情况
YUCHUN0607 发表于 2010-12-2 11:46


速度应该和芯片内部用的门有关吧


低速的输出,设置50M模式,对输出应该没有影响,但是耗电会比20M高一点。

使用特权

评论回复
10
香水城| | 2010-12-3 07:06 | 只看该作者
STM32中GPIO的速度设置是配置输出通道的带宽,如果输出的信号速度较低但你设置了较高的输出带宽,则不会对输出信号产生影响,只会增加功耗和噪声;如果输出的信号速度较高但你设置了较低的输出带宽,则会得到失真的波形。

使用特权

评论回复
11
say_sth_freely| | 2010-12-3 08:14 | 只看该作者
关于上拉和下拉是这样的:
stm32的GPIO既可以设置为输出也可以设置为输入,当设置为输入时,输出还是可以有效的,当设为上拉时,可以把输出设为高电平,而设为下拉输入时,把输出设为低电平,这样就有了上拉和下拉。

使用特权

评论回复
12
say_sth_freely| | 2010-12-3 08:31 | 只看该作者
其实为了保险起见,如果你设置为上拉最好在脚外加个上拉电阻,设为下拉就加个下拉电阻,只靠stm32内部的上拉下拉可能不好用

使用特权

评论回复
13
YUCHUN0607|  楼主 | 2010-12-3 08:51 | 只看该作者
STM32中GPIO的速度设置是配置输出通道的带宽,如果输出的信号速度较低但你设置了较高的输出带宽,则不会对输出信号产生影响,只会增加功耗和噪声;如果输出的信号速度较高但你设置了较低的输出带宽,则会得到失真的 ...
香水城 发表于 2010-12-3 07:06

还是香主

使用特权

评论回复
14
YUCHUN0607|  楼主 | 2010-12-3 08:52 | 只看该作者
关于上拉和下拉是这样的:
stm32的GPIO既可以设置为输出也可以设置为输入,当设置为输入时,输出还是可以有效的,当设为上拉时,可以把输出设为高电平,而设为下拉输入时,把输出设为低电平,这样就有了上拉和下拉。 ...
say_sth_freely 发表于 2010-12-3 08:14

哦,还可以这样用啊,见识了

使用特权

评论回复
15
zddxmu| | 2010-12-3 09:23 | 只看该作者
GPIO的速度设置是配置输出通道的带宽.

这样的表述专业多了,呵呵

使用特权

评论回复
16
czc818| | 2013-4-9 13:54 | 只看该作者
没能理解 GPIO输出时 Speed 配置,不知为什么要配置不同的速度

使用特权

评论回复
17
czc818| | 2013-4-9 13:58 | 只看该作者
1.1 I/O口的输出模式下,有3种输出速度可选(2MHz、10MHz和50MHz),这个速度是指I/O口驱动电路的响应速度而不是输出信号的速度,输出信号的速度与程序有关(芯片内部在I/O口 的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路)。通过选择速度来选择不同的输出驱动模块,达到最佳的噪声 控制和降低功耗的目的。高频的驱动电路,噪声也高,当不需要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能。当然如果要输出较高频率的信号,但却选用了较低频率的驱动模块,很可能会得到失真的输出信号。

关键是GPIO的引脚速度跟应用匹配(推荐10倍以上?)。比如:
1.1.1 对于串口,假如最大波特率只需115.2k,那么用2M的GPIO的引脚速度就够了,既省电也噪声小。
1.1.2 对于I2C接口,假如使用400k波特率,若想把余量留大些,那么用2M的GPIO的引脚速度或许不够,这时可以选用10M的GPIO引脚速度。
1.1.3 对于SPI接口,假如使用18M或9M波特率,用10M的GPIO的引脚速度显然不够了,需要选用50M的GPIO的引脚速度。

使用特权

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

本版积分规则

8

主题

54

帖子

0

粉丝