第十一届蓝桥杯嵌入式组别底层驱动程序⑧(EEPROM【AT24C02】)
配置AT24C02第一步:先添加比赛给的文件里面的底层I2C驱动程序;
第二步:
/*******************************************************************************
* 文件名称:EEPROM
* 日期版本:2019-11-26/V3.0b
* 作 者:零点工作室(RMLS)
*******************************************************************************/
#include "project.h"
#include "i2c.h"
//PB6 SCL
//PB7 SDA
void EepromWrite(uint8_t addr, uint8_t dat)
{
I2CStart();
I2CSendByte(0xA0);
I2CWaitAck();
I2CSendByte(addr);
I2CWaitAck();
I2CSendByte(dat);
I2CWaitAck();
I2CStop();
}
uint8_t EepromRead(uint8_t addr)
{
uint8_t tmp;
I2CStart();
I2CSendByte(0xA0);
I2CWaitAck();
I2CSendByte(addr);
I2CWaitAck();
I2CStart();
I2CSendByte(0xA1);
I2CWaitAck();
tmp = I2CReceiveByte();
I2CWaitAck();
I2CStop();
return tmp;
}
#ifndef __EEPROM_H__
#define __EEPROM_H__
void EepromWrite(uint8_t addr, uint8_t dat);
uint8_t EepromRead(uint8_t addr);
#endif
主函数初始化
i2c_init();
调用
EepromWrite(0x01, num);//在0x01这个地址写下,0xAA这个数据 Delay_Ms(5); dat_Eeprom = EepromRead(0x01);