初级会员

- 积分
- 64
- 金钱
- 64
- 注册时间
- 2017-9-26
- 在线时间
- 9 小时
|
1金钱
u8 AT24cxx_ReadOneByte(u16 ReadAddr)
{
u8 temp=0;
IIC_Star();
if(EE_TYPE>AT24C16)//#define EE_TYPE AT24C02 #define AT24C02 255 #define AT24C16 2047
{
IIC_Sendbyte(0XA0);
IIC_wait_ACK();
IIC_Sendbyte(ReadAddr>>8);
IIC_wait_ACK();
}else IIC_Sendbyte(0XA0+((ReadAddr/256)<<1));
IIC_wait_ACK();
IIC_Sendbyte(ReadAddr%256);
IIC_wait_ACK();
IIC_Star();
IIC_Sendbyte(0XA1);
IIC_wait_ACK();
temp=IIC_Readbyte(0);
IIC_Stop();//
return temp;
}
这是原子哥的程序,鉴于使用的是24c02,因此我就这样简单写了
u8 temp;
//ÏÈд
IIC_Star();
delay_us(2);
IIC_Sendbyte(0XA0);//send״̬Ҳ¾ÍÊÇ£¬IO¿ÚΪÊä³ö״̬
IIC_wait_ACK();
//ÔÚ¶Á
IIC_Star();
IIC_Sendbyte(0XA1);//send״̬Ҳ¾ÍÊÇ£¬IO¿ÚΪÊä³ö״̬
IIC_wait_ACK(); //
temp=IIC_Readbyte(0);
IIC_Stop();
delay_ms(5);
return temp;
但是行不通,不知道是哪里少了什么环节吗?
求大神解惑
|
|