I2C读取EEPROM出现数据不完整的情况

/* 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

Your email address will not be published. Required fields are marked *

曠怡亭口占

流轉知何世,江山尚此亭。

登臨皆曠士,喪亂有遺經。

已識乾坤大,猶憐草木青。

長空送鳥印,留幻與人靈。

Featured Posts