7359|15

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

咨询下STM32GOIO管脚双向传输问题! [复制链接]

咨询下STM32 GOIO管脚双向传输问题!
现采用管脚PD0-7  数据需要双向传输,即能接收数据,也能对外发送数据,那么是不是每次都必须设置方向??
比如接受数据时,要先设置管脚为输入..
发送数据时,又药重新设置管脚为输出..

>???

谢谢!
此帖出自stm32/stm8论坛

最新回复

                                 要输入还不是要写1到ODR,反正都要走一步了,改一入GPIO的方向又有什么所谓呢  详情 回复 发表于 2010-11-29 19:18
点赞 关注
 

回复
举报

72

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
设置PD0-7为Output-Open Drain,同时没有引脚外接4.7左右的上拉电阻到Vcc,这样你可以将这些引脚同时用作输入和输出。
输出:写数据到GPIOx->ODR
输入:从GPIOx->IDR读数据

这个问题以前有网友问过,希望大家在提问时,先查看一下以前的帖子或着看看精华贴。
此帖出自stm32/stm8论坛
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
也就是设置:GPIO_Mode_Out_OD 模式?
还有不能上拉??要是外界芯片内部有弱上拉呢??
那是不是只有一会设置输入,一会设置输出?
此帖出自stm32/stm8论坛
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 
                                 外界芯片内部有弱上拉作用是什么?
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(中级)

5
 
搜索以前帖子:
答:用户在应用中,如果需要使用一个GPIO既要用作输入也要用作输出的,可以将该引脚配置为Output-OpenDrain,同时在引脚上连接一个上拉电阻,用户在使用中即可将它用作(准)双向输入输出口。
    输出时: GPIOx->OIDR =输出值;
    输入时: 变量 = GPIOx->IDR;

那么 --外界芯片内部有弱上拉的话, 那应该不需要外界一个上拉电阻吧??
另外读GPIOx->IDR ,和写GPIOx->OIDR  有什么注意的么?
是不是读之前需要写1??
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

6
 
                                 PS: 是不是设置为Output-OpenDrain 后 还需要设置输入、输出切换???
此帖出自stm32/stm8论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

7
 
是不是设置为Output-OpenDrain 后 还需要设置输入、输出切换???
答:不需要。
你的另一个问题需要先回答我的需要知道的内容,才能回答你。
此帖出自stm32/stm8论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

8
 
外界芯片内部有弱上拉作用是什么?:
这个外接芯片一般上受外部控CPU控制的管脚的内有弱上拉,比如CS#,RD#,这些控制管脚低电平有效...

PS:这个外接芯片是USB芯片CH375。不知道有没有人用stm32驱动ch375过没?
现在写最底层的读写函数... 读取回来的数据不成功.....
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

9
 
                                 外接4.7左右的上拉电阻到Vcc应该没有问题
此帖出自stm32/stm8论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

10
 
实现双向操作很容易:
1)配置GPIO端口为开漏输出,并外接上拉
2)输出时:直接写GPIOx->OIDR =输出值
3)输入时:现在对应的端口输出"1",再读入GPIOx->IDR
此帖出自stm32/stm8论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

11
 
实现双向操作很容易:
1)配置GPIO端口为开漏输出,并外接上拉
2)输出时:直接写GPIOx->OIDR =输出值
3)输入时:现在对应的端口输出"1",再读入GPIOx->IDR ...
外接上拉电阻是必须的么?? 如果这个管脚外界芯片 有内置弱上拉呢??
此帖出自stm32/stm8论坛
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

12
 
外部上拉的强弱主要看你对干扰、驱动和传输速度等的要求。

如果外界芯片有内置弱上拉,也建议你加一个10K以内的外部上拉比较好。
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

13
 
版主,我按您说的配置成OD,上拉4K7,输出正常,读取输入的时候总是高,为什么呢?我都快晕死了。

写IO的时候是GPIOx->ODR = xxx;
读IO的时候是先写1,然后XXX=GPIOx->IDR
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

14
 
为什么要读IO的时候是先写1,然后XXX=GPIOx->IDR?
为什么不直接读?
此帖出自stm32/stm8论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

15
 
                                 只有先写1,才能读到管脚状态,如果IO输出口为0,这时不管IO管脚输入是什么电平从IO管脚读到的都是低电平
此帖出自stm32/stm8论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

16
 
                                 要输入还不是要写1到ODR,反正都要走一步了,改一入GPIO的方向又有什么所谓呢
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表