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

[复制链接]
2917|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是双向的
低八度的声线 发表于 2015-9-11 09:38 | 显示全部楼层
styleno1 发表于 2015-9-10 12:03
大量AF模式的I/O是双向的

貌似是这样的,那么要设置为模拟输入,就不能进行协议匹配了
deliciouscook 发表于 2015-9-12 08:16 | 显示全部楼层
“在开漏模式时,对输入数据寄存器的读访问可得到I/O状态”,而加上拉是为了能输出高电平
vivilzb1985 发表于 2015-9-12 13:08 | 显示全部楼层
这个需要根据相关的IO寄存器进行配置的。
shenmu2012 发表于 2015-9-12 13:10 | 显示全部楼层
这个同时的既做输入又做输出的功能是不存在的,需要短时间的切换使用才可以。
月正浓 发表于 2015-9-13 15:35 | 显示全部楼层
将STM32的IO配置成开漏输出,然后外接上拉,就实现了双向IO。
注意:读取IO数据时需要使用GPIO_ReadInputDataBit();
塞北旅途 发表于 2015-9-14 16:37 | 显示全部楼层
初始化默认为输出;
读函数
{
   将端口设置为输入;
   读取输入的值;
   将端口还原为输出;
}
这样轮流切换即可
angerbird 发表于 2015-9-15 23:20 | 显示全部楼层
这个是没有的,需要用的时候配置相关寄存器。
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)
王大熊 发表于 2015-9-18 08:17 | 显示全部楼层
看来似乎只有楼上几位说的这么一种方法可以选了。
 楼主| 麦可可 发表于 2015-9-29 22:21 | 显示全部楼层
shdjdq 发表于 2015-9-9 07:57
可以的啊,IO设置为OC输出,不作输出时,全置1。

OC门是不是无法输出高电平呢?
 楼主| 麦可可 发表于 2015-9-29 22:21 | 显示全部楼层
styleno1 发表于 2015-9-10 12:03
大量AF模式的I/O是双向的

我实际是用做传输数据的呀,比如18B20的单总线模式的时候。
 楼主| 麦可可 发表于 2015-9-29 22:22 | 显示全部楼层
deliciouscook 发表于 2015-9-12 08:16
“在开漏模式时,对输入数据寄存器的读访问可得到I/O状态”,而加上拉是为了能输出高电平 ...

我试试去,输出模式还能读到IO的状态么?
 楼主| 麦可可 发表于 2015-9-29 22:22 | 显示全部楼层
shenmu2012 发表于 2015-9-12 13:10
这个同时的既做输入又做输出的功能是不存在的,需要短时间的切换使用才可以。 ...

我认为切换时可以的,不过速度快了是不是就来不及反应了呢?
 楼主| 麦可可 发表于 2015-9-29 22:23 | 显示全部楼层
月正浓 发表于 2015-9-13 15:35
将STM32的IO配置成开漏输出,然后外接上拉,就实现了双向IO。
注意:读取IO数据时需要使用GPIO_ReadInputDa ...

这个办法我试试去
 楼主| 麦可可 发表于 2015-9-29 22:23 | 显示全部楼层
塞北旅途 发表于 2015-9-14 16:37
初始化默认为输出;
读函数
{

这样的速度可以达到多少呢?需要操作寄存器吗?
 楼主| 麦可可 发表于 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

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