DS3231读数据怎么设置地址?

2020-01-17 19:11发布

根据手册,DS3231在读数据时,先写入器件地址并设置为读模式,器件会在ACK时钟过后开始输出数据,数据的来源地址为上次操作的地址
那么,有两个地方没高明白:
1、数据的来源地址可以自由改变么?比如我的设计要求每次开机后MCU都要配置DS3231的时钟输出端,此时地址寄存器的值就是0x0E了。然后我需要从DS3231里读取年月日时分秒这些数据,此时要求地址寄存器的值是0x00,怎么改变呢?先用写模式写入新地址,但是不写入数据,直接给STOP信号,然后重新给START信号,转换模式为读模式,这样可以么?
2、读模式下,DS3231输出数据的字节数,是否依然由MCU决定?MCU在若干字节后强行给STOP信号能不能终止传输?
请赐教!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
liangws201
1楼-- · 2020-01-17 21:23
给你参考一下程序吧。
bigeblis
2楼-- · 2020-01-18 02:21
另外,手册还提到在读取到最后一个字节时,要返回一个“NACK"信号,但是却没有说明这个NACK信号具体是怎么样的。。。。。。
这个也请解答一下
bigeblis
3楼-- · 2020-01-18 03:34
liangws201 发表于 2013-4-28 00:18
给你参考一下程序吧。

多谢指教,应该基本上可以了。。。
little_Monkey
4楼-- · 2020-01-18 07:33
ACK是一个CLK来的时候输出一个负脉冲,NACK是主器件要发一个时钟但是从器件不响应,如果读取固定地址数据在手册里面有详细的说明
bigeblis
5楼-- · 2020-01-18 09:02
 精彩回答 2  元偷偷看……
kerrwang1982
6楼-- · 2020-01-18 13:35
liangws201 发表于 2013-4-28 00:18
给你参考一下程序吧。

太好,太及时了,用AT89S52一调就通,用ATMEGA16怎么调也不行,郁闷。

一周热门 更多>