ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU
打印

[STM32F1] SDIO使用的GPIO的模式设置疑问

[复制链接]
99|11
跳转到指定楼层
楼主
 楼主 | 2019-11-28 16:43 | 只看该作者 |退出气泡模式 回帖奖励 |倒序浏览 |阅读模式
这几天在对照书上和网上的范例学习STM32内部的SDIO接口驱动SD卡, 看到的范例里对SDIO使用到的CMD, DATA0-DATA3这些GPIO引脚都是配置为AF_PP即复用推挽输出;
我的疑问是: 像SDIO的CMD以及DATAn引脚都是需要数据双向传输的,( 可能为STM32发送到SD卡, 可也能是SD卡响应的时候回传数据) ,那么如果这些引脚上的数据要实现双向传送, 在GPIO配置成复用推挽模式的情况下,岂不是数据只能由主机传送到SD卡, 而SD卡无法通过此GPIO口回传需要响应的数据了吗?
因为如果一个GPIO口配置成推挽模式,那么它的引脚上的状态要么是Vcc, 要么是GND, 即是这两种带有驱动能力的电平状态之一, 这显然无法实现数据的双向传送; 而如果设置成 复用开漏输出配合外部挂接的上拉电阻则可实现类似于51单片机的准双向IO口, 不知道我的理解是否有错误, 以及错在哪里, 望指正,谢谢!
不知道是我哪里理解的不对? 我的

使用特权

评论回复
沙发
| 2019-11-29 09:54 | 只看该作者
不是推挽输出;
用CUEB生成好了

使用特权

评论回复
板凳
 楼主 | 2019-11-29 14:56 | 只看该作者
mmuuss586 发表于 2019-11-29 09:54
不是推挽输出;
用CUEB生成好了

看了网上大部分的参数代码( 可以大家都互相抄来抄去的) ,都是将DATA引脚以及CMD引脚都设备成AF_PP模式呢,  

使用特权

评论回复
地板
| 2019-11-29 21:22 | 只看该作者
通信一班选准双向。

使用特权

评论回复
5
 楼主 | 2019-12-2 09:30 | 只看该作者
xinpian101 发表于 2019-11-29 21:22
通信一班选准双向。

按本人目前的理解是的, 可是看网上大部分代码,在利用STM32F1的片上外设如USART, SDIO等进行双向通信时,都是选择的AF_OUT_PP, 即复用推挽输出, 但好像也没有人反馈说这样的设置有问题, 造成实验失败等情况; 不知道是否此处的复用推挽输出是否和我理解的不一样呢

使用特权

评论回复
6
| 2019-12-11 13:54 | 只看该作者
我一般就是普通的输入输出

使用特权

评论回复
7
| 2019-12-11 13:56 | 只看该作者
不用推挽输出

使用特权

评论回复
8
| 2019-12-11 13:56 | 只看该作者
我一般就是默认的配置

使用特权

评论回复
9
| 2019-12-11 13:58 | 只看该作者
用cube生成代码

使用特权

评论回复
10
| 2019-12-11 14:01 | 只看该作者
没想这么深入过

使用特权

评论回复
11
| 2019-12-11 14:03 | 只看该作者
需要区分这些模式的差异

使用特权

评论回复
12
| 2019-12-12 07:23 | 只看该作者
SD最好用GPIO自己模拟控制SD的时序和协议。。1,方便移值到其他MCU,2,出问题容易定位,,3,方便精减和优化。。。。除非为了高速读写,否则还不如自己IO模拟控制。

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

快3注册邀请码tt 安塞县| 东乡族自治县| 祁东县| 中卫市| 无棣县| 蒙自县| 乐清市| 珠海市| 芒康县| 威信县| 桦甸市| 弋阳县| 麻城市| 洪江市| 应城市| 永康市| 汾阳市| 五家渠市| 米易县| 德保县| 扶余县| 伊宁县| 天等县| 鄯善县| 喀喇| 阿尔山市| 乌苏市| 叶城县| 西盟| 石柱| 疏勒县| 福海县| 昭通市| 湘乡市| 大方县| 三穗县| 凤凰县| 涞源县| 西安市| 三明市| 鲜城|