蓝桥杯嵌入式组EEPROM

image-20230406222143323

先看原理图

可以看到有一块at24c02(原理一样的)

内部组织32页 每一页8Byte 总共256Byte 即2Kbit

按字节寻址 说明地址范围0-255D

image-20230406222609494

再看用户手册的这一页

A2A1A0就是看芯片引脚E3E2E1接的是高电平还是低电平

由此可知 写指令0xA0 读指令0xA1

image-20230406224653191

看着用户手册的时序图 我们就可以写出写数据 读数据函数

uint8_t eeprom_read(uint8_t addr)
{
    uint8_t dat;
    
    I2CStart();
    I2CSendByte(0xa0);  //写地址指令  
    I2CWaitAck();		//等待应答
    I2CSendByte(addr);
    I2CWaitAck();
    
    I2CStart();
    I2CSendByte(0xa1);  //读数据指令
    I2CWaitAck();
  	dat = I2CReceiveByte();
  	I2CWaitAck();
 	I2CStop();
  	return dat;
}
//rom里默认数据为255
void eeprom_write(uint8_t addr, uint8_t dat)
{
  I2CStart();
  I2CSendByte(0xa0);
  I2CWaitAck();
  I2CSendByte(addr);
  I2CWaitAck();
  I2CSendByte(dat);
  I2CWaitAck();
  I2CStop(); 
  HAL_Delay(10);   //连续写的时候  要加延迟  因为存储写速度远没有单片机运行速度快
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值