• 大小: 4KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-20
  • 语言: 其他
  • 标签: 模拟IIC  

资源简介

模拟IIC读写at24c512,用at24c02程序改写,其中包括奇数位读写乱码、读写0xff问题的解决办法。欢迎登门。

资源截图

代码片段和文件信息


#include “r_cg_iic.h“
#include “r_cg_serial.h“
#include “r_cg_eeprom.h“


void AT24CXX_Init(void)
{
    scl=1;
    sda=1;
PM6.0 = 0;
//PU1.7 = 0;
}

u8 AT24CXX_Check(void)
{
u8 temp;
temp=AT24CXX_ReadOneByte(65535);    
if(temp==0x55)return 0;    
else
{
AT24CXX_WriteOneByte(655350X55);
     temp=AT24CXX_ReadOneByte(65535);   
if(temp==0X36)return 0;
}
return 1;   
}

u8  AT24CXX_ReadOneByte(u16 ReadAddr)
{
  //unsigned char 
    u8 temp=0;
     IIC_start();
   
    if(EE_TYPE>AT24C16)
     {
IIC_wbyte(0XA0);   
IIC_checkack();
IIC_wbyte(ReadAddr>>8);     
     }
   
    else 
   
     {
IIC_wbyte(0XA0+((ReadAddr/256)<<1)); 
    } 
     IIC_checkack();
       IIC_wbyte(ReadAddr%256);
   IIC_checkack();
      IIC_start();
           IIC_wbyte(0XA1);
      IIC_checkack();
       temp=IIC_rbyte(0);
      IIC_stop();
     return temp; 
//IIC_delay(10);
}



void AT24CXX_WriteOneByte(u16 WriteAddru8 DataToWrite)
{
u8 kk=0;
     IIC_start();
   if(EE_TYPE>AT24C16)
   {
      IIC_wbyte(0XA0);
      IIC_checkack();
       IIC_wbyte(WriteAddr>>8);
   }
   else
   {
       IIC_wbyte(0XA0+((WriteAddr/256)<<1));
   }
     IIC_checkack();
     IIC_wbyte(WriteAddr%256);
     IIC_checkack();
     IIC_wbyte(DataToWrite);
 kk=IIC_wbyte(DataToWrite);
    IIC_checkack();
     IIC_stop();
     IIC_delay(20);
}



void AT24CXX_WriteLenByte(u16 WriteAddru32 DataToWriteu8 Len)
{  
  u8 t;
     for(t=0;t    {
   AT24CXX_WriteOneByte(WriteAddr+t(DataToWrite>>(8*t))&0xff);
    }     
}


u32 AT24CXX_ReadLenByte(u16 ReadAddru8 Len)
{  
u8 t;
u32 temp=0;
for(t=0;t {
temp<<=8;
temp+=AT24CXX_ReadOneByte(ReadAddr+Len-t-1);       
}
return temp;     
}



void AT24CXX_Read(u16 ReadAddru8 *pBufferu16 NumToRead)
{
while(NumToRead)
{
*pBuffer++=AT24CXX_ReadOneByte(ReadAddr++);
NumToRead--;
}




void AT24CXX_Write(u16 WriteAddru8 *pBufferu16 NumToWrite)
{
while(NumToWrite--)
{
AT24CXX_WriteOneByte(WriteAddr*pBuffer);
WriteAddr++;
pBuffer++;
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        383  2017-12-26 09:51  模拟IIC读写at24c512总结\note.txt

     文件       2201  2017-12-26 09:51  模拟IIC读写at24c512总结\r_cg_eeprom.c

     文件        735  2017-12-26 09:51  模拟IIC读写at24c512总结\r_cg_eeprom.h

     文件       1932  2017-12-26 09:51  模拟IIC读写at24c512总结\r_cg_iic.c

     文件        687  2017-12-26 09:51  模拟IIC读写at24c512总结\r_cg_iic.h

     文件       4704  2017-12-26 09:51  模拟IIC读写at24c512总结\r_main.c

     目录          0  2017-12-26 09:53  模拟IIC读写at24c512总结

----------- ---------  ---------- -----  ----

                10642                    7


评论

共有 条评论