/* the slave address accessed for master rx mode */
#define I2C_MRXADDR 0x008
#define I2C_MRXADDR_SET(vld, addr) (((vld) << 24) | (addr))
/* the slave register address accessed for master rx mode */
#define I2C_MRXRADDR 0x00c
#define I2C_MRXRADDR_SET(vld, raddr) (((vld) << 24) | (raddr))
一、I2C_MRXRADDR_SET 将EEPROM的寄存器地址和读取数据字节数合并为一个32位数据,但是这样会导致地址域只有8位,最多读取到256个字节数,只能保证前256个字节数无误。
二、如果使用i2c_read(chip,reg,len,buf,lenbuf);会导致取得的数据每32个字节丢失一个字节,有可能是因为内存映射错误,或者内存对齐问题。
Leave a Reply