- 论坛徽章:
- 0
|
小弟最近咋做一个关于AT88SCXxde 芯片
使用linux标注的I2C接口读写AT88SC。。
打开/dev/i2c-0后,
ioctl(fd, I2C_SLAVE, (0xb4>>1);
选择从设备地址,这个地址是个7位,我测试MTZ区是可以写进去
通过查询手册写命令是
发送B4 addr1 addr2 N data1data2....(数量为N)
char buf[10] = {0};
buf[0] = 0x00; //addr1
buf[1] = 0x0a; //addr2
buf[2] = 2; //N
buf[3] = 0x22; //data1
buf[4] = 0x33; //data2
write(fd,buf,5);
写进去成功了(使用串口调试),
读的时候就不正确
读命令
B6 addr1 addr2 N data1 data2....(N个)
ioctl(fd, I2C_SLAVE, (0xb6>>1); //IIC的从设备地址改变了,这里很迷惑。。但是又不得不这样做AT88的指令是这样的。。
buf[3] = 0;
buf[4] = 0;
if(write(fd,buf,3) != 3)
{
//error;
exit(1);
}
read(fd, buf+3,2);
printf的buf[3],buf[4],不正确
不知道哪位大侠做过这个相关的,帮忙看下,这个AT88sc加密芯片的地址到底泽怎么搞 |
|