- 打卡等级:偶尔看看III
- 打卡总天数:33
- 最近打卡:2025-01-05 13:16:38
中级会员
- 积分
- 314
|
请教STC32G12K128 I2C的读写问题。程序使用数据手册例程。
硬件是铁电FM24C128,用模拟I2C能正常读写。但用系统I2C读写不能正常。读出数据都是FF(可能写也是错的)。为了排除FM24CL128问题,换成24c128问题同样。程序如下:
A0,A1,A2接地。
void Write_byte(uint addr,uchar dat)
{
uchar i,j;
i=addr/256;
j=addr%256;
Start(); //发送起始命令
SendData(0xa0); //发送设备地址+写命令
RecvACK();
SendData(i); //发送存储地址
RecvACK();
SendData(j); //发送存储地址
RecvACK();
SendData(dat);
SendNAK();
Stop(); //发送停止命令
}
uchar ReadNbyte(uint addr)
{
uchar i,j;
i=addr/256;
j=addr%256;
Start(); //发送起始命令
SendData(0xa0); //发送设备地址+写命令
RecvACK();
SendData(i); //发送存储地址
RecvACK();
SendData(j); //发送存储地址
RecvACK();
Start(); //发送起始命令
SendData(0xa1); //发送设备地址+读命令
RecvACK();
Stop();
return i; //发送停止命令
}
|
|