OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3487|回复: 3

F4 ds18b20 IO设置成开漏上拉读出数据错误的问题

[复制链接]

5

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
119
金钱
119
注册时间
2016-7-24
在线时间
36 小时
发表于 2016-7-28 22:59:49 | 显示全部楼层 |阅读模式
1金钱
首先 我IO设置的是 开漏上拉 ,这就相当于双向口了,,然后写程序,发现复位的响应值 0能读出来,但是 读出来的温度 是错的 是0xffff,然后搞了好一会。后来我想我试试 不用开漏的,就用推挽输出然后切换模式,就是在写之前都切换成输出,读之前都切换成输出 发现,诶可以耶,都出来的值是正确的。。求解答为什么开漏上拉就不行。
我 IO模拟IIC用开漏上拉就行的呀。

最佳答案

查看完整内容[请看2#楼]

开漏和推挽在波形上的不同就是0→1的边沿,如下图: 调时序,最有力的工具是示波器,单靠脑补是很费劲的;
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-7-28 22:59:50 | 显示全部楼层
欧欧耶 发表于 2016-7-29 10:15
但是我在开漏程序的基础上把初始化的开漏改成 推挽输出然后写和读之前都切换模式就没问题?

开漏和推挽在波形上的不同就是0→1的边沿,如下图:
img_0086(1).png


调时序,最有力的工具是示波器,单靠脑补是很费劲的;

坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-7-28 23:32:57 | 显示全部楼层
开漏是可以的,你可能外部上拉电阻过小导致总线没有足够的时间释放,对照着波形检查一下时序,
回复

使用道具 举报

5

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
119
金钱
119
注册时间
2016-7-24
在线时间
36 小时
 楼主| 发表于 2016-7-29 10:15:40 | 显示全部楼层
xkwy 发表于 2016-7-28 23:32
开漏是可以的,你可能外部上拉电阻过小导致总线没有足够的时间释放,对照着波形检查一下时序,

但是我在开漏程序的基础上把初始化的开漏改成 推挽输出然后写和读之前都切换模式就没问题?
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 21:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表