📄 at24c16_driver.c
字号:
#include "AT89S52.h"
#include "CONFIG.H"
#include "IIC_Driver.h"
/*-------------------------------------------------------
向I2C总线写n个字节
Device_Adr:块地址(0~7)
Word_Adr:内存地址(0~255)
*buffer:待发数组指针
n:发送字节数(1~16)
-------------------------------------------------------*/
void Write_N_Bytes(uchar Device_Adr,uchar Word_Adr,uchar *buffer,uchar n)
{
uchar data i;
Device_Adr=Device_Adr<<1;
IIC_Start() ;
IIC_Write_Byte(Device_Adr|0xA0);
if(IIC_Check_Acknowledge())
{
IIC_Stop() ;
return ;
}
IIC_Write_Byte(Word_Adr);
if(IIC_Check_Acknowledge())
{
IIC_Stop() ;
return ;
}
for(i=0 ;i<n ;i++)
{
IIC_Write_Byte(*buffer++) ;
if(IIC_Check_Acknowledge())
{
IIC_Stop() ;
return ;
}
}
IIC_Stop() ;
}
/*-------------------------------------------------------
从I2C总线读n个字节
Device_Adr:块地址(0~7)
Word_Adr:内存地址(0~255)
*buffer:待收数组指针
n:接收字节数(1~16)
-------------------------------------------------------*/
void Read_N_Bytes(uchar Device_Adr,uchar Word_Adr,uchar *buffer,uchar n)
{
uchar data i ;
Device_Adr=Device_Adr<<1;
IIC_Start() ;
IIC_Write_Byte(Device_Adr|0xA0) ;
if(IIC_Check_Acknowledge())
{
IIC_Stop() ;
return ;
}
IIC_Write_Byte(Word_Adr);
if(IIC_Check_Acknowledge())
{
IIC_Stop() ;
return ;
}
IIC_Start();
IIC_Write_Byte(Device_Adr|0xA1) ;
if(IIC_Check_Acknowledge())
{
IIC_Stop() ;
return ;
}
for(i=0 ;i<n ;i++)
{
*buffer++=IIC_Read_Byte() ;
IIC_Acknowledge();
}
IIC_Stop() ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -