我使用csl对24c256操作
写了下面两个函数,一个保存,一个读取
//保存设置 0失败 1成功 最快写入速度5ms 调用后要延时!!!!
int SaveSet
ting(unsigned char * buf,unsigned int len)
[
Uint16 datareceive[2];
int x,i;
//1.要写的地址
datareceive[0]=0;
datareceive[1]=0;
x=I2C_write(datareceive,2,1,0x50,3,30000);
//2写数据内容
for(i=0;i
[
while (!I2C_xrdy());
I2C_writeByte (buf
);
]
//3.写停止
I2C_sendStop();
return x;
]
//读取设置 0失败 1成功
int LoadSetting(unsigned char * buf,unsigned int len)
[
Uint16 datareceive[2];
int z;
//1. 要读取的地址
datareceive[0]=0;
datareceive[1]=0;
z=I2C_write(datareceive,2,1,0x50,3,30000);
//2.读取
z=I2C_read((Uint16 *)buf,len,1,0x50,1,30000,0);
return z;
]
系统时钟按照论坛里面的修正了,写数据没有问题(用编程器读取的),用示波器看速度50K
但是用 LoadSetting 就无法读取,第一个执行
z=I2C_write(datareceive,2,1,0x50,3,30000);
返回z=0
执行下面一句 返回z=2 时钟线一直拉低 后面就无法用了
看文档说 在主接收 用模式1 应该没问题啊
按照SPRA785A的例子也只能读一次,也是时钟线一直拉低
已经卡了很久了,希望专家予以解答,谢谢