阅读:2115回复:1
CY7C68013读写24LC64不成功
各位,我要读写24LC64,自己写的读方法没用CYPRESS给的函数库,因为EZUSB_I2C()只能读单字节地址的EEPROM,但用自己写的方法读出来的数全是D1,先给出自己写的读代码:
BYTE ReadEEPROM(eepromaddr) { BYTE readeeprombyte; // unsigned char address; BYTE hiaddr,loaddr; hiaddr=eepromaddr>>8; //地址高位 loaddr=eepromaddr&0x00ff; //地址低位 while(I2CS &bmSTOP); I2CS = 0x80; //START I2DAT = 0xA2; //设备从地址+写 while((I2CS & 0x01)!= 0x01); I2DAT = 0x00; //I2DAT = hiaddr; while((I2CS & 0x01)!= 0x01); I2DAT = 0x00; //I2DAT = loaddr; while((I2CS & 0x01)!= 0x01); I2CS = 0x80; //START I2DAT = 0xA3; //设备从地址+读 while((I2CS & 0x01)!= 0x01); readeeprombyte = I2DAT; while((I2CS & 0x01)!= 0x01); //DONE I2CS = 0x20; //在读到最后一个字节之前,设置LASTRD=1 readeeprombyte= I2DAT; while((I2CS & 0x01)!= 0x01); I2CS = 0x40; //STOP //readeeprombyte = I2DAT; return (readeeprombyte); } 请各位指出错误!谢了先。。。。。。。 |
|
沙发#
发布于:2010-07-05 15:07
24LC64的器件地址不是0x50嘛,为什么你写的是0xA2?
|
|