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

[复制链接]
5517|11
 楼主| xiepengchenghn 发表于 2010-12-24 09:14 | 显示全部楼层 |阅读模式
参照参考手册上的表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配置表,有何意义?

谢谢香主的回答
香水城 发表于 2010-12-24 11:53 | 显示全部楼层
你说的"手册上的那个外设GPIO配置表",是哪个?
 楼主| xiepengchenghn 发表于 2010-12-24 14:55 | 显示全部楼层
5# 香水城

第8.1.11那个表
 楼主| xiepengchenghn 发表于 2010-12-24 14:57 | 显示全部楼层
 楼主| xiepengchenghn 发表于 2010-12-24 15:03 | 显示全部楼层
香主在三楼所说,“没有连接到功能模块”指的是图中的2处吗?“只有引脚的输入起作用”指的是1处的复用输入功能吗?
此图中,是不是表明,只要配置为复用推挽输出模式,根据外设的需要一样有可能有输入进来?
2.jpg
香水城 发表于 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
 楼主| xiepengchenghn 发表于 2010-12-24 16:20 | 显示全部楼层
9# 香水城

明白了,谢谢香主的详细解答
lkl10800139 发表于 2012-3-28 01:26 | 显示全部楼层
东方云滨 发表于 2013-3-27 10:16 | 显示全部楼层
看到楼上的诸位的帖子,受教了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

267

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部