前面说了对于像AT24C512这样的内部地址是2字节的,读写遇到问题了,今天解决了,直接上代码。
unsigned char tx[2] = {0x0,0x0};
unsigned char rx[2];
unsigned char wr[3]={0x0,0x0,0x77};
ret = i2c_master_send(data->client, wr, 3);//往0x0000地址写0x77
if (ret < 0)
dev_err(&data->client->dev, "I2C write error\n");
msleep(50);
ret = i2c_master_send(data->client, tx, 2);//发送要读的地址0x0000
if (ret >= 0)
{
ret = i2c_master_recv(data->client, rx, 2);//接收读出的数据
printk("rx[0]=0x%x\n",rx[0]);
printk("rx[1]=0x%x\n",rx[1]);
}