打印
[STM32F1]

请教stm32要双向IO应该设成哪种模式?使用DS1302

[复制链接]
7642|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
h295472204|  楼主 | 2014-3-3 16:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 h295472204 于 2014-3-4 17:04 编辑

本人在编写ds1302程序时按网上很多人的做法,直接设置成推挽输出,在面包板上调试一切ok,但是换了贴片式的焊到板子上就一直调不出来,结果把io设置为写时推挽输出,读时浮空输入,这下一切都好了。请教这是为什么? 还有要一次性设成双向的改用哪种?我看很多人说 开漏加上拉,为什么?求大神讲解


搞懂了  stm32参考手册 8.18节输出模式配置时有这么一句话。 “在开漏模式时,对输入数据寄存器的读访问可得到I/O状态”,而加上拉是为了能输出高电平

但是还有一个问题 就是为什么我在面包板上调试时,用推挽模式能实现双向io  在师兄那里就不行,按理说也是不行的啊 但是看网上也有很多人莫名其妙用推挽实现了双向io
沙发
h295472204|  楼主 | 2014-3-3 18:41 | 只看该作者
顶一下啊

使用特权

评论回复
板凳
STARM| | 2014-3-3 19:09 | 只看该作者
开漏加上拉

使用特权

评论回复
地板
h295472204|  楼主 | 2014-3-3 21:14 | 只看该作者
STARM 发表于 2014-3-3 19:09
开漏加上拉

能解释下为什么吗

使用特权

评论回复
5
myxiaonia| | 2014-3-3 21:30 | 只看该作者
h295472204 发表于 2014-3-3 21:14
能解释下为什么吗

传统51就是这么做的,准双向口

使用特权

评论回复
6
gonggu8181| | 2014-3-4 07:39 | 只看该作者
PP就可以。和18B20一样就可以

使用特权

评论回复
7
h295472204|  楼主 | 2014-3-4 11:19 | 只看该作者
gonggu8181 发表于 2014-3-4 07:39
PP就可以。和18B20一样就可以

在我这用推挽可以,但是在师兄那设成推挽怎么都不行,只能切换模式才能出来结果。

使用特权

评论回复
8
vavcm| | 2014-3-4 11:55 | 只看该作者
One-Wire协议 需要单片机真正的开漏IO  不是模拟的开漏IO  上拉一个合适的电阻。
你看下STM32的PDF 换个开漏IO就可以了。

使用特权

评论回复
9
youimiss| | 2014-3-4 12:11 | 只看该作者
我也觉得如果STM32的IO同时作为输入和输出的话是不是配置IO口要在输入输出之间来回切换?

使用特权

评论回复
10
h295472204|  楼主 | 2014-3-4 17:01 | 只看该作者
youimiss 发表于 2014-3-4 12:11
我也觉得如果STM32的IO同时作为输入和输出的话是不是配置IO口要在输入输出之间来回切换? ...

终于搞懂了  stm32参考手册 8.18节输出模式配置时有这么一句话。 “在开漏模式时,对输入数据寄存器的读访问可得到I/O状态”,而加上拉是为了能输出高电平

使用特权

评论回复
11
北海之风| | 2017-6-23 10:31 | 只看该作者
mark

使用特权

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

本版积分规则

9

主题

46

帖子

1

粉丝