24C16的读写程序,为什么程序会自动写到地址0和地址256中?
时间:10-02
整理:3721RD
点击:
这个是我的24C16的写数据程序:
void write_add(uint address,uchar date)
{
start(); //开始信号
write_byte(0xa0); //设备地址,高四位为1010,后三位为A2,A1和A0的硬件值,最低位为W(0)或R(L)
respons(); //响应函数
write_byte(address); //写数据地址,写到地址为address的地方去
respons();//响应函数
write_byte(date);//写数据
respons();//响应函数
stop();//结束信号
}
器件地址都是000(当然是没用的)
我在给256的地址写数据的时候,程序会自动写到地址0和地址256中,这是为什么啊?
void write_add(uint address,uchar date)
{
start(); //开始信号
write_byte(0xa0); //设备地址,高四位为1010,后三位为A2,A1和A0的硬件值,最低位为W(0)或R(L)
respons(); //响应函数
write_byte(address); //写数据地址,写到地址为address的地方去
respons();//响应函数
write_byte(date);//写数据
respons();//响应函数
stop();//结束信号
}
器件地址都是000(当然是没用的)
我在给256的地址写数据的时候,程序会自动写到地址0和地址256中,这是为什么啊?
自己已经解决,是页选地址不对,超过255之后就是第二页,地址就是001了;超过511之后就是第三页了,地址就是010了。一次类推,希望给在玩这个东西的人一点建议。
