01/10/2018, 12:06

Chuẩn giao tiếp I2C

Em có 1 thắc mắc là ở việc read data:
Master: start -> write slave address -> write slave register -> restart -> read slave address//0
Code em lấy trên mạng:

với add := 0x00
unsigned char Ds1307_Read(unsigned char add)
{
	unsigned char dat;
	Soft_I2c_Start();
	Soft_I2c_Write(0xD0); _**//1**_
	Soft_I2c_Write(add);
	Soft_I2c_Start(); 
	Soft_I2c_Write(0xD1); _**//2**_
	dat = Soft_I2c_Read(0);
	Soft_I2c_Stop();
	return dat;
}

Cho em hỏi suy nghĩ của em như thế này có phải là đúng không?
(2) > (1) 1 đơn vị. Có nghĩa là (1) đang ở chế độ write còn (2) là thông báo chuyển chế độ sang read Vì bit cuối cùng là thông báo của master cho slave là read hoặc write. Vậy thì (0) read slave address thì em viết như vậy là đúng hay sai! Nếu sai thì em chỉnh như thế nào cho đúng! Em cảm ơn mọi người!

Văn Dương viết 14:22 ngày 01/10/2018

http://www.hocavr.com/index.php/app/ds1307

nghia viết 14:10 ngày 01/10/2018

Em cảm ơn anh nhiều! Xin lỗi vì tới giờ mới respone lại!

Bài liên quan
0