打印

好像M3没有准双向IO的说法

[复制链接]
2198|28
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
麦可可|  楼主 | 2015-9-8 22:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
M3的 IO设置中没法设置为双向IO的,不能既可以做输出,又可以做输入
沙发
shdjdq| | 2015-9-9 07:57 | 只看该作者
可以的啊,IO设置为OC输出,不作输出时,全置1。

使用特权

评论回复
板凳
number9| | 2015-9-9 15:47 | 只看该作者
开漏加上拉

使用特权

评论回复
地板
styleno1| | 2015-9-10 12:03 | 只看该作者
大量AF模式的I/O是双向的

使用特权

评论回复
5
低八度的声线| | 2015-9-11 09:38 | 只看该作者
styleno1 发表于 2015-9-10 12:03
大量AF模式的I/O是双向的

貌似是这样的,那么要设置为模拟输入,就不能进行协议匹配了

使用特权

评论回复
6
deliciouscook| | 2015-9-12 08:16 | 只看该作者
“在开漏模式时,对输入数据寄存器的读访问可得到I/O状态”,而加上拉是为了能输出高电平

使用特权

评论回复
7
vivilzb1985| | 2015-9-12 13:08 | 只看该作者
这个需要根据相关的IO寄存器进行配置的。

使用特权

评论回复
8
shenmu2012| | 2015-9-12 13:10 | 只看该作者
这个同时的既做输入又做输出的功能是不存在的,需要短时间的切换使用才可以。

使用特权

评论回复
9
月正浓| | 2015-9-13 15:35 | 只看该作者
将STM32的IO配置成开漏输出,然后外接上拉,就实现了双向IO。
注意:读取IO数据时需要使用GPIO_ReadInputDataBit();

使用特权

评论回复
10
塞北旅途| | 2015-9-14 16:37 | 只看该作者
初始化默认为输出;
读函数
{
   将端口设置为输入;
   读取输入的值;
   将端口还原为输出;
}
这样轮流切换即可

使用特权

评论回复
11
angerbird| | 2015-9-15 23:20 | 只看该作者
这个是没有的,需要用的时候配置相关寄存器。

使用特权

评论回复
12
justperky| | 2015-9-16 09:28 | 只看该作者
设成OD+外部上拉,可以实现双向模式
GPIO_ResetBits(DS_PORT,DS_IO)
GPIO_SetBits(DS_PORT,DS_IO)
GPIO_ReadInputDataBit(DS_PORT,DS_IO)

使用特权

评论回复
13
王大熊| | 2015-9-18 08:17 | 只看该作者
看来似乎只有楼上几位说的这么一种方法可以选了。

使用特权

评论回复
14
麦可可|  楼主 | 2015-9-29 22:21 | 只看该作者
shdjdq 发表于 2015-9-9 07:57
可以的啊,IO设置为OC输出,不作输出时,全置1。

OC门是不是无法输出高电平呢?

使用特权

评论回复
15
麦可可|  楼主 | 2015-9-29 22:21 | 只看该作者
styleno1 发表于 2015-9-10 12:03
大量AF模式的I/O是双向的

我实际是用做传输数据的呀,比如18B20的单总线模式的时候。

使用特权

评论回复
16
麦可可|  楼主 | 2015-9-29 22:22 | 只看该作者
deliciouscook 发表于 2015-9-12 08:16
“在开漏模式时,对输入数据寄存器的读访问可得到I/O状态”,而加上拉是为了能输出高电平 ...

我试试去,输出模式还能读到IO的状态么?

使用特权

评论回复
17
麦可可|  楼主 | 2015-9-29 22:22 | 只看该作者
shenmu2012 发表于 2015-9-12 13:10
这个同时的既做输入又做输出的功能是不存在的,需要短时间的切换使用才可以。 ...

我认为切换时可以的,不过速度快了是不是就来不及反应了呢?

使用特权

评论回复
18
麦可可|  楼主 | 2015-9-29 22:23 | 只看该作者
月正浓 发表于 2015-9-13 15:35
将STM32的IO配置成开漏输出,然后外接上拉,就实现了双向IO。
注意:读取IO数据时需要使用GPIO_ReadInputDa ...

这个办法我试试去

使用特权

评论回复
19
麦可可|  楼主 | 2015-9-29 22:23 | 只看该作者
塞北旅途 发表于 2015-9-14 16:37
初始化默认为输出;
读函数
{

这样的速度可以达到多少呢?需要操作寄存器吗?

使用特权

评论回复
20
麦可可|  楼主 | 2015-9-29 22:23 | 只看该作者
justperky 发表于 2015-9-16 09:28
设成OD+外部上拉,可以实现双向模式
GPIO_ResetBits(DS_PORT,DS_IO)
GPIO_SetBits(DS_PORT,DS_IO)

速度有多快呢?

使用特权

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

本版积分规则

7

主题

94

帖子

0

粉丝