這段程序讀出寄存器數據沒有問題,但是我想可不可以依次從首地址連續讀出數據直到主機發出NACK
信號結束。還想請教一下大家
uchar date[7]; /* date[2]=hour,date[1]=minute,date[0]=second*/
uchar read_ds3231(uchar address) //從DS3231的某個地址讀取1byte數據
{
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();
} |