新手入门
- 积分
- 11
- 金钱
- 11
- 注册时间
- 2019-12-25
- 在线时间
- 2 小时
|
用原子哥读写24c256时发现每次读出来的都是255.不知道问题出在哪里,读写程序如下 u8 AT24CXX_ReadOneByte(u16 ReadAddr)
{
u8 temp=0;
IIC_Start();
if(EE_TYPE>AT24C256)
{
IIC_Send_Byte(0XA0); //·¢ËíD′Ãüáî
IIC_Wait_Ack();
IIC_Send_Byte(ReadAddr>>8);//·¢Ëí¸ßμØÖ·
//IIC_Wait_Ack();
}
else
IIC_Send_Byte(0XA0+((ReadAddr/256)<<1)); //·¢ËíÆ÷¼tμØÖ·0XA0,D′êy¾Y
IIC_Wait_Ack();
IIC_Send_Byte(ReadAddr%256); //·¢ËíμíμØÖ·
IIC_Wait_Ack();
IIC_Start();
IIC_Send_Byte(0XA1); //½øèë½óêÕÄ£ê½ +((ReadAddr/256)<<1)
IIC_Wait_Ack();
temp=IIC_Read_Byte(0);
IIC_Stop();//2úéúò»¸öí£Ö1ìõ¼t
return temp;
}
void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite)
{
IIC_Start();
if(EE_TYPE>AT24C256)
{
IIC_Send_Byte(0XA0); //·¢ËíD′Ãüáî
IIC_Wait_Ack();
IIC_Send_Byte(WriteAddr>>8);//·¢Ëí¸ßμØÖ·
}else
{
IIC_Send_Byte(0XA0+((WriteAddr/256)<<1)); //·¢ËíÆ÷¼tμØÖ·0XA0,D′êy¾Y
}
IIC_Wait_Ack();
IIC_Send_Byte(WriteAddr%256); //·¢ËíμíμØÖ·
IIC_Wait_Ack();
IIC_Send_Byte(DataToWrite); //·¢Ëí×Ö½ú
IIC_Wait_Ack();
IIC_Stop();//2úéúò»¸öí£Ö1ìõ¼t
delay_ms(10);
}
|
|