|
|
這段程序讀出寄存器數(shù)據(jù)沒有問題,但是我想可不可以依次從首地址連續(xù)讀出數(shù)據(jù)直到主機發(fā)出NACK
信號結(jié)束。還想請教一下大家
uchar date[7]; /* date[2]=hour,date[1]=minute,date[0]=second*/
uchar read_ds3231(uchar address) //從DS3231的某個地址讀取1byte數(shù)據(jù)
{
uchar dat;
uchar n;
start();
write_i2c(0xd0);
while(!respons());
write_i2c(0x00); // 寫秒寄存器地址
while(!respons());
start();
write_i2c(0xd1);
while(!respons());
date[0]=read_i2c();
stop();
delay();delay();delay();delay();
start();
write_i2c(0xd0);
while(!respons());
write_i2c(0x01); // 寫分寄存器地址
while(!respons());
start();
write_i2c(0xd1);
while(!respons());
date[1]=read_i2c();
stop();
delay();delay();delay();delay();
start();
write_i2c(0xd0);
while(!respons());
write_i2c(0x02); //寫小時寄存器地址
while(!respons());
start();
write_i2c(0xd1);
while(!respons());
date[2]=read_i2c();
stop();
} |
|