在线时间393 小时
UID123826
注册时间2009-4-22
NXP金币0
TA的每日心情 | 难过 2021-12-15 16:01 |
---|
签到天数: 1 天 [LV.1]初来乍到
中级会员
- 积分
- 373
- 最后登录
- 2023-8-16
|
楼主 |
发表于 2010-5-21 14:11:31
|
显示全部楼层
回复:【开发学院第三期】相关硬件技术资料贴
AT24C02读取写入函数
#include "i2c_driver.h"
#include "at24c02.h"
#include "delay.h"
/* write 24xxxx I2C EEPROM
* 参数:
* buf---包含待写入数据的缓冲区
* addr---eeprom起始地址
* num--数据长度
* 返回:
* 0---success
* 1---failed
* 2---invalid address
*/
unsigned char at24c02_write(unsigned char *buf,unsigned char num,uint8 addr)
{
unsigned char i,ret;
if(addr+num>EEPROM_MAX_ADDR)
return 2;
i2c_start();
ret=i2c_send_byte(WR24C02);
if(ret)
{
i2c_stop();
return 1;
}
ret=i2c_send_byte(addr);
if(ret)
{
i2c_stop();
return 1;
}
for(i=0;iEEPROM_MAX_ADDR)
return 2;
i2c_start();
if(i2c_send_byte(WR24C02))
{
i2c_stop();
return 1;
}
ret=i2c_send_byte(addr);
if(ret)
{
i2c_stop();
return 1;
}
i2c_restart();
if(i2c_send_byte(RD24C02))
{
i2c_stop();
return 1;
}
for(i=0;i |
|