打印
[STM32F4]

[求助]请问STM32F4的GPIO管脚可以同时配置成输入、输出模式吗

[复制链接]
15177|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
如题,最近一个项目需要使用GPIO口模拟输入、输出模式的数据总线,小弟不才,每次输出数据的时候先把GPIO口配置成输出,每次读取数据时又将GPIO配置成输入。使用的是官方的库函数,结果用示波器已测量,发现输入、输出模式转换太耗时了。请问可以将GPIO管脚在初始化的时候配置成既可以input又可以output的模式吗?谢谢了!
沙发
diweo| | 2014-5-4 15:04 | 只看该作者
你觉得这8种模式里面有没有符合你要求的?

无标题.png (128.08 KB )

无标题.png

使用特权

评论回复
板凳
guangbiao| | 2014-5-4 15:48 | 只看该作者
mark

使用特权

评论回复
地板
mmuuss586| | 2014-5-4 16:18 | 只看该作者
IO配置成开漏输出,然后外接上拉,就实现了双向IO。

使用特权

评论回复
5
圈圈虫1989|  楼主 | 2014-5-4 21:00 | 只看该作者
mmuuss586 发表于 2014-5-4 16:18
IO配置成开漏输出,然后外接上拉,就实现了双向IO。

为什么开漏输出外接上拉就可以实现呢?开漏输出归根结底还是输出模式的呀?求指点

使用特权

评论回复
6
mmuuss586| | 2014-5-4 21:04 | 只看该作者

这个我解释不清楚,实在抱歉。

以前在百度上,看到讲的蛮详细

你搜:STM32 双向IO看看

使用特权

评论回复
7
香水城| | 2014-5-4 21:09 | 只看该作者
圈圈虫1989 发表于 2014-5-4 21:00
为什么开漏输出外接上拉就可以实现呢?开漏输出归根结底还是输出模式的呀?求指点 ...

你看看GPIO那一章节的Output mode的框图就知道了。

配置输出模式时,输出驱动电路使能的,同时输入电路也并未断开。这个时候,读取【输入数据寄存器】得到就是此时I/O口的电平状态。

使用特权

评论回复
8
圈圈虫1989|  楼主 | 2014-5-4 22:56 | 只看该作者
香水城 发表于 2014-5-4 21:09
你看看GPIO那一章节的Output mode的框图就知道了。

配置输出模式时,输出驱动电路使能的,同时输入电路 ...

多谢香香版主解释

使用特权

评论回复
9
圈圈虫1989|  楼主 | 2014-5-4 22:57 | 只看该作者
mmuuss586 发表于 2014-5-4 21:04
这个我解释不清楚,实在抱歉。

以前在百度上,看到讲的蛮详细

多谢版主解释

使用特权

评论回复
10
圈圈虫1989|  楼主 | 2014-5-5 21:32 | 只看该作者
今天把I/O端口配置为开漏输出,但是没有外接上拉,是芯片内部上拉的。不太稳定,求解释

使用特权

评论回复
11
戈卫东| | 2014-5-5 23:08 | 只看该作者
配置成开漏输出,接上拉电阻,需要输入时ODR写1就可以了。
如果改输出配置,一般需要读回来改一下再写回去。
但是如果你自己优化一下,应该也可以用一次写完成——所以这两种方式如果做到最好其实可以达到一样的最高频率。

使用特权

评论回复
12
guet_new_man| | 2014-5-6 00:46 | 只看该作者
楼上是正解!  我一般就是使用开漏模式,电路上需外接上拉电阻。当需要查询输入电平时,需先把内部的输出置成高,之后读取该引脚的输入电平状态即可。

使用特权

评论回复
13
guet_new_man| | 2014-5-6 00:47 | 只看该作者
对于开漏电路,楼主可以看看GPIO口的电路就明白了。

使用特权

评论回复
14
无帝老三| | 2017-1-4 09:05 | 只看该作者
guet_new_man 发表于 2014-5-6 00:46
楼上是正解!  我一般就是使用开漏模式,电路上需外接上拉电阻。当需要查询输入电平时,需先把内部 ...

芯片内部的上拉可以吗?还是电路上必须外接上拉?

使用特权

评论回复
15
guet_new_man| | 2017-1-7 18:40 | 只看该作者
无帝老三 发表于 2017-1-4 09:05
芯片内部的上拉可以吗?还是电路上必须外接上拉?

内部上拉电阻主要是用于推挽输出和单纯的输入模式哦,这两种情况只能是输出或者输入模式,而开漏模式同时支持输出和输入查询,必须外接上拉电阻。

使用特权

评论回复
16
无帝老三| | 2017-1-9 10:00 | 只看该作者
guet_new_man 发表于 2017-1-7 18:40
内部上拉电阻主要是用于推挽输出和单纯的输入模式哦,这两种情况只能是输出或者输入模式,而开漏模式同时 ...

奥,谢谢指点

使用特权

评论回复
17
chenyuanjiyi| | 2020-6-2 10:47 | 只看该作者
无帝老三 发表于 2017-1-4 09:05
芯片内部的上拉可以吗?还是电路上必须外接上拉?

你好  大神 有相关例程吗?我用SPI双向时,写入0x64,读出来的是0x3F,

使用特权

评论回复
18
chenyuanjiyi| | 2020-6-2 10:49 | 只看该作者
guet_new_man 发表于 2014-5-6 00:46
楼上是正解!  我一般就是使用开漏模式,电路上需外接上拉电阻。当需要查询输入电平时,需先把内部 ...

你好  大神 有相关例程吗?我用SPI双向时,配置了开漏,外接了上拉电阻,写入0x64,读出来的是0x3F,

使用特权

评论回复
19
yediezeus| | 2020-6-2 11:03 | 只看该作者

使用特权

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

本版积分规则

20

主题

264

帖子

4

粉丝