You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用eeprog读写I2C EEPROM(CAT24C256)时出错求助

解决eeprog读写CAT24C256 I2C EEPROM的错误问题

一、编译操作说明

你的编译步骤是正确的,执行make clean和make all后成功生成了eeprog可执行文件,编译日志如下:

astra@astra-OptiPlex-3020:~/niraj_workspace/eeprog-0.7.6(1)/eeprog-0.7.6$ make clean
rm -f eeprog 24cXX.o
astra@astra-OptiPlex-3020:~/niraj_workspace/eeprog-0.7.6(1)/eeprog-0.7.6$ make all
cc -g -I. -Wall -O2      -c -o 24cXX.o 24cXX.c
cc   eeprog.o 24cXX.o   -o eeprog

使用的Makefile内容也无问题:

CFLAGS=-g -I. -Wall -O2   

all: eeprog 

clean: 
    rm -f eeprog 24cXX.o

eeprog: eeprog.o 24cXX.o

eeprog-static: eeprog.o 24cXX.o
    $(CC) -static -o $@ $?

二、错误分析与解决方法

1. 第一个命令错误:./eeprog -f -16 -w 0 -t 5 /dev/i2c-0 0x50

存在两个问题:

  • invalid option -- 't':eeprog 0.7.6版本没有-t参数,直接去掉该参数即可。
  • Both read and write requested:命令格式错误,-w 0仅指定了起始地址但未提供写入数据源,且命令逻辑隐含了读写冲突。

修正后的写命令示例(将文件data.bin写入到EEPROM起始地址0的位置,16位地址模式,强制操作):

./eeprog -f -16 -w data.bin 0 /dev/i2c-0 0x50

2. 第二个命令错误:./eeprog -xf /dev/i2cv-0 0x50 -16 -r 0x10:0x20

核心问题:

  • No such file or directory:设备路径写错,Linux下I2C设备的标准路径为/dev/i2c-N(N为数字编号),你输入的/dev/i2cv-0是不存在的设备文件。

修正后的读命令示例(读取EEPROM中0x10到0x20地址范围的数据,16位地址模式,强制操作):

./eeprog -xf -16 -r 0x10:0x20 /dev/i2c-0 0x50

额外注意事项

  • 确认I2C总线编号:执行ls /dev/i2c*查看系统存在的I2C设备,确保使用正确的总线路径。
  • 权限问题:若执行命令时提示权限不足,可添加sudo运行,或给目标I2C设备文件添加当前用户的读写权限。
  • EEPROM地址匹配:CAT24C256的基础地址为0x50,若硬件上A0/A1/A2引脚有接电平,需对应调整地址(例如A0接高电平时地址为0x51)。

内容的提问来源于stack exchange,提问作者Niraj Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 15:25:18