PCB设计william hill官网
直播中

slxixiha

8年用户 49经验值
擅长:嵌入式技术
私信 关注
[问答]

DS1307读取时间不正常

做了个小开发板,上面有个DS1307模块,我用I2C总线去读取DS1307的时间,然后通过串口输出,但是输出的时间间隔不固定,这会是什么原因导致的?我打印过I2C函数的返回状态,状态是正常的。
  • QQ截图20160510225539.png
  • QQ截图20160510225016.png
  • QQ截图20160501214514.png
已退回5积分

回帖(17)

莎莎miu~

2016-5-11 10:45:04
I2C加电阻没
举报

jinyi7016

2016-5-11 15:45:02
要先设置一下再看看。设置一定要正确。
举报

slxixiha

2016-5-11 15:59:30
引用: 莎莎miu~ 发表于 2016-5-11 10:45
I2C加电阻没

恩 我在其他的I2C器件那里上拉了
举报

slxixiha

2016-5-11 20:11:59
引用: jinyi7016 发表于 2016-5-11 15:45
要先设置一下再看看。设置一定要正确。

设置?跟什么设置会有关?
举报

jinyi7016

2016-5-11 20:14:24
引用: slxixiha 发表于 2016-5-11 04:11
设置?跟什么设置会有关?

时间的设置啊,不是要初始化时间么
举报

slxixiha

2016-5-11 20:16:24
引用: jinyi7016 发表于 2016-5-11 20:14
时间的设置啊,不是要初始化时间么

恩 这个时间我重写了啊    所以每次开始的时间都是一样的啊
举报

jinyi7016

2016-5-11 20:21:09
引用: slxixiha 发表于 2016-5-11 04:16
恩 这个时间我重写了啊    所以每次开始的时间都是一样的啊

重写的格式对么?要是BCD码吧。时间上也不能错。
举报

slxixiha

2016-5-11 20:25:11
引用: jinyi7016 发表于 2016-5-11 20:21
重写的格式对么?要是BCD码吧。时间上也不能错。

时间没错啊   就是我之前写入的时间啊   但是读取的时间间隔就是不一样
举报
  • QQ截图20160511202430.png

jinyi7016

2016-5-11 20:38:50
引用: slxixiha 发表于 2016-5-11 04:25
时间没错啊   就是我之前写入的时间啊   但是读取的时间间隔就是不一样

你把SQW/OUT输出一下看一下对不对呢
举报

slxixiha

2016-5-11 20:47:46
引用: jinyi7016 发表于 2016-5-11 20:38
你把SQW/OUT输出一下看一下对不对呢

这个还真没试过  我没有引出这个管脚     我明天去看看实验室开不开门   开门就用示波器测一下
举报

寒758264068

2016-5-11 23:31:12
DS1307信号线需要上拉,请教下:for(i=0;i

slxixiha

2016-5-12 09:54:58
引用: 寒758264068 发表于 2016-5-11 23:31
DS1307信号线需要上拉,请教下:for(i=0;i

我在其他I2C器件的信号线中加了上拉电阻,还有那个i是unsigned int 型的  32位的数字是大于ffffff的
举报

寒758264068

2016-5-12 12:58:54
引用: slxixiha 发表于 2016-5-12 09:54
我在其他I2C器件的信号线中加了上拉电阻,还有那个i是unsigned int 型的  32位的数字是大于ffffff的

是哦,老是记得只有16位的!!!之前我用的ds1302也是时间不稳定,直接在信号线接上上拉就行了!!
举报

slxixiha

2016-5-12 16:47:28
引用: 寒758264068 发表于 2016-5-12 12:58
是哦,老是记得只有16位的!!!之前我用的ds1302也是时间不稳定,直接在信号线接上上拉就行了!!

我在其他器件的I2C信号线上接上拉是不是相当于所有的I2C线都接了上拉
举报

slxixiha

2016-5-12 16:49:52
引用: 寒758264068 发表于 2016-5-12 12:58
是哦,老是记得只有16位的!!!之前我用的ds1302也是时间不稳定,直接在信号线接上上拉就行了!!

我在其他I2C器件上接了上拉是不是所有的I2C线都有效了?
举报

寒758264068

2016-5-12 17:07:24
引用: slxixiha 发表于 2016-5-12 16:49
我在其他I2C器件上接了上拉是不是所有的I2C线都有效了?

上面的图你应该是没上啦,或者你在MCU端上啦了我看不到。不知道你说的在其他I2C器件上啦了是什么意思?ds1307与MCU(例如52)应该是模拟I2C把,应该要单独上啦。。自己飞线上啦一下试试就知道了
举报

slxixiha

2016-5-13 09:39:36
引用: 寒758264068 发表于 2016-5-12 17:07
上面的图你应该是没上啦,或者你在MCU端上啦了我看不到。不知道你说的在其他I2C器件上啦了是什么意思?ds1307与MCU(例如52)应该是模拟I2C把,应该要单独上啦。。自己飞线上啦一下试试就知道了

就是我在这里上拉了,  ds1307与MCU不是模拟I2C啊   程序中用的就是I2C的接口啊
举报
  • QQ截图20160513093253.png
  • QQ截图20160513093441.png

更多回帖

发帖
×
20
完善资料,
赚取积分