关于iic芯片24c02应答的一个小问题。
时间:10-02
整理:3721RD
点击:
在学习iic的时候,把写好的程序下载到板子后,发现每次从24c02中取出的数都是写入数据的一半,查了很久发现是程序中少写了一个应答信号(下面红色部分),出错部分程序如下:
uchar read_add(uchar address)
{
uchar date;
start();
write_byte(0xa0);
response();
write_byte(address);
response();
start();
write_byte(0xa1);
response();
date=read_byte();
stop();
return date;
}
我猜想是读取的时候只读了八位数据中的七位,所以数据才会变成写入的一半,可能是把应答信号“0”当成了一位数据?
但也不知道是否是那样,所以来请教各位
uchar read_add(uchar address)
{
uchar date;
start();
write_byte(0xa0);
response();
write_byte(address);
response();
start();
write_byte(0xa1);
response();
date=read_byte();
stop();
return date;
}
我猜想是读取的时候只读了八位数据中的七位,所以数据才会变成写入的一半,可能是把应答信号“0”当成了一位数据?
但也不知道是否是那样,所以来请教各位
指定地址读的数据帧格式