打印

关于SPI的引脚GPIO模式使用问题

[复制链接]
4345|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
参照参考手册上的表22,SPI在做全双工模式中的主模式时,MISO的GPIO模式已更改配置为浮空输入或者带上拉输入,但是为什么很多例程中都配置为复用推挽输出,可是程序运行的结果也都正确呢?
沙发
mcu5i51| | 2010-12-24 10:55 | 只看该作者
记得好像他会自己配置,SPI功能打开初始化之后IO操作就无效了

使用特权

评论回复
板凳
香水城| | 2010-12-24 10:58 | 只看该作者
这是因为配置为复用推挽输出时,实际上输出驱动器的内部另一端没有连接到功能模块,所以这个输出部分没有作用,只有引脚的输入功能起作用。

使用特权

评论回复
地板
xiepengchenghn|  楼主 | 2010-12-24 11:15 | 只看该作者
3# 香水城

还是不能完全明白香主的意思,翻看了下用户手册,看到了复用功能配置的图17,输出驱动器字配置为复用功能的时候,是没有连接到输出数据寄存器,但是连接到了复用功能输出啊。是不是配置为推挽式复用功能输出模式,输入信号就会变成复用功能输入,进入片上外设?
这样说,配置为推挽复用输出的时候,实际上也是有输入的,等于就将这个I/o配置为了推挽复用功能,既配置了输出也配置了输入?那外设的GPIO是不是可以一律配置为推挽输出就行了?那手册上的那个外设GPIO配置表,有何意义?

谢谢香主的回答

使用特权

评论回复
5
香水城| | 2010-12-24 11:53 | 只看该作者
你说的"手册上的那个外设GPIO配置表",是哪个?

使用特权

评论回复
6
xiepengchenghn|  楼主 | 2010-12-24 14:55 | 只看该作者
5# 香水城

第8.1.11那个表

使用特权

评论回复
7
xiepengchenghn|  楼主 | 2010-12-24 14:57 | 只看该作者

就这

1.jpg (48.01 KB )

1.jpg

使用特权

评论回复
8
xiepengchenghn|  楼主 | 2010-12-24 15:03 | 只看该作者
香主在三楼所说,“没有连接到功能模块”指的是图中的2处吗?“只有引脚的输入起作用”指的是1处的复用输入功能吗?
此图中,是不是表明,只要配置为复用推挽输出模式,根据外设的需要一样有可能有输入进来?

2.jpg (47.78 KB )

2.jpg

使用特权

评论回复
9
香水城| | 2010-12-24 15:11 | 只看该作者
如果看看GPIO配置为Alternate function时的框图,你就明白了。

当MISO的GPIO模式配置为复用推挽输出时,因为SPI模块的MISO信号在主模式时是输入而没有输出,因此下图中的Alternate Function Output信号线上没有信号,所以推挽输出的2个MOS管都是处于关闭状态,不会影响外部信号。


GPIO配置为复用推挽输出时,Alternate Function Input始终是有效的,所以SPI模块的MISO信号可以正确收到外来的信号。

STM32_AF_PP.GIF (14.61 KB )

STM32_AF_PP.GIF

使用特权

评论回复
10
xiepengchenghn|  楼主 | 2010-12-24 16:20 | 只看该作者
9# 香水城

明白了,谢谢香主的详细解答

使用特权

评论回复
11
lkl10800139| | 2012-3-28 01:26 | 只看该作者
学习

使用特权

评论回复
12
东方云滨| | 2013-3-27 10:16 | 只看该作者
看到楼上的诸位的帖子,受教了

使用特权

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

本版积分规则

0

主题

267

帖子

1

粉丝