[STM32F1] GPIO双向配置

[复制链接]
1639|10
 楼主| wczrui 发表于 2015-8-1 23:08 | 显示全部楼层 |阅读模式
如何实现输入输出功能?
活在珍贵的人间 发表于 2015-8-2 10:14 | 显示全部楼层
开漏输出,接上拉电阻,上拉电阻阻值依照实际需要确定。可以不用切换输入输出状态。
1.png

评分

参与人数 1威望 +1 收起 理由
wczrui + 1 很给力!

查看全部评分

 楼主| wczrui 发表于 2015-8-2 17:01 | 显示全部楼层
感谢“活在珍贵的人间”的详细答复。我用的是购买的开发版,手头没有必要的元器件,不便扩展电路。
如果只在软件上考虑,难道只能在输入输出间对端口切换配置?
 楼主| wczrui 发表于 2015-8-2 17:10 | 显示全部楼层
活在珍贵的人间 发表于 2015-8-2 10:14
开漏输出,接上拉电阻,上拉电阻阻值依照实际需要确定。可以不用切换输入输出状态。 ...

如果只考虑软件方式,能否实现?谢谢!
活在珍贵的人间 发表于 2015-8-2 17:19 | 显示全部楼层
wczrui 发表于 2015-8-2 17:10
如果只考虑软件方式,能否实现?谢谢!

只有切换了,目前我想不到其他的方法。我估计你是觉得用库函数切换效率低吧,其实除非要求特别苛刻的的场合,库函数完全可以满足实时性需要。

当然寄存器操作效率最高,给你一个我的操作寄存器切换端口状态的例子,仅供参考:
#define         DHT_PIN           GPIO_Pin_4                  
#define         DHT_PORT                GPIOC

#define DHT_PIN_Mode_In()          {DHT_PORT->CRL&=0XFFF0FFFF;DHT_PORT->CRL|=8<<16;DHT_PORT->ODR|=DHT_PIN;}  
#define DHT_PIN_Mode_Out()  {DHT_PORT->CRL&=0XFFF0FFFF;DHT_PORT->CRL|=3<<16;}
米尔豪斯 发表于 2015-8-2 20:41 | 显示全部楼层
双向数据传输,好像是设置成OD模式吧
zhou00 发表于 2015-8-2 20:49 | 显示全部楼层
双向输出比起单向用的要多。。。。
lvyunhua 发表于 2015-8-2 21:31 | 显示全部楼层
不错,学习了。
 楼主| wczrui 发表于 2015-8-3 01:17 | 显示全部楼层
活在珍贵的人间 发表于 2015-8-2 17:19
只有切换了,目前我想不到其他的方法。我估计你是觉得用库函数切换效率低吧,其实除非要求特别苛刻的的场 ...

感谢您的分享!
 楼主| wczrui 发表于 2015-8-3 01:19 | 显示全部楼层
米尔豪斯 发表于 2015-8-2 20:41
双向数据传输,好像是设置成OD模式吧

开漏模式确定可以实现双向数据操作?
冰河w 发表于 2015-8-5 11:43 | 显示全部楼层
之前在哪看见过用开漏输出加上拉电阻, 可以实现,具体没做过
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

11

帖子

1

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