GPIO如何配置和应用才能实现双向口功能?

2019-07-21 07:58发布

如果配置成开漏输出,从说明书看可以实现0输出有效,1输出为高阻态,也可以读取这个开漏输出口的数据输入寄存器数值。
我就想使用这个口来输出0,当输出1时读取端口的状态数据,以此来实现不配置为输入从而实现准双向口功能。
但是试验发现读取的数值不对。
请问这个想法可行吗?如果可行需要如何配置。
(如果需要输入时改变端口配置为输入当然可以)


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
xiatianyun
2019-07-21 23:29
经过多次试验,确实可以实现准双向口,不过似乎用处不大,主要还是当端口浮空时读取的值不确定。
要实现准双向口,端口需要配置为开漏输出,读取前必须先输出1使端口高阻态并维持一段时间(for空循环10次),然后才读。这时如果端口是0则读值为0,如果端口为1则读值为1,如果端口浮空,则读的值不确定。所以有几个关键点:读前输出1、端口不能出现浮空。
一起这样,不如就需要输出配置为输出,需要输入配置为输入。

一周热门 更多>