24c02.c

来自「24C**的读写程超精简」· C语言 代码 · 共 98 行

C
98
字号
/******************************************************************************
     AT24C02.c
     AT24C02读写程序文件
******************************************************************************/


#ifndef   AT24C02_MACRO
#define   AT24C02_MACRO
#include "AT24c02.h"
//#include "i2c.c"


/******************************************************************************
函数:AT24C02_Init()
功能:AT24C02初始化
参数: device 设备号, Addr 要写入的地址, Data 写入的数据
说明:
******************************************************************************/
void AT24C02_Init()
{
   I2C_Init();
}
/******************************************************************************
函数:AT24C02_Write_Byte
功能:向指定的设备的地址写入一个数据
参数: device 设备号, Addr 要写入的地址, Data 写入的数据
说明:
******************************************************************************/
void AT24C02_Write_Byte(unsigned char Device,unsigned char Addr, unsigned char Data)
{

     I2C_Start();
     I2C_Write(Device);
     clock();
     I2C_Write(Addr);
     clock();
     I2C_Write(Data);
     clock();
     I2C_Stop();
     I2C_Delay();
     I2C_Write(Device|1);

}
/******************************************************************************
函数:AT24C02_Write_Page(uchar Device, uchar Addr, uchar *Data)
功能:AT24C02写页命令
参数: device 设备号, Addr 要写入的地址, Data 写入的数据
说明:
******************************************************************************/
void AT24C02_Write_Page(unsigned char Device, unsigned char Addr,unsigned char *Data)
{
     unsigned char i=0;

     I2C_Start();
     I2C_Write(Device);
     clock();
     I2C_Write(Addr);
     for(i=0; i < 8;i++)
{
    clock();
    I2C_Write(*Data++);
     }
     clock();
     I2C_Stop();
     I2C_Delay();
}
/******************************************************************************
函数:AT24C02_Read_Byte(uchar Device,uchar Addr)
功能:从指定的设备的地址读出一个数据
说明:
******************************************************************************/
unsigned char AT24C02_Read_Byte(unsigned char Device,unsigned char Addr)
{
  unsigned char i;


   I2C_Start();
   I2C_Write(Device);
   clock();
   I2C_Write(Addr);
   clock();
   I2C_Start();
   I2C_Write(Device|0x01);
   clock();
   i = I2C_Read();
   I2C_Stop();
   I2C_Delay();

   return(i);

}


#endif

//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?