蓝桥杯嵌入式EEPROM与IIC存储

这里我们使用软件IIC

把PB6、PB7的GPIO配置成输出模式即可

然后导入官方资料包给的IIC文件

然后需要分别写一个IIC与EEPROM的发送和接收函数

发送:


void eeprom_write(uchar arr,uchar dat)
{

    I2CStart();
    I2CSendByte(0xa0);
    I2CWaitAck();
    I2CSendByte(arr);
    I2CWaitAck();
    I2CSendByte(dat);
    I2CWaitAck();
    I2CStop();

}

接收:



uchar eeprom_read(uchar dat)
{
    uchar datt;
    I2CStart();
    I2CSendByte(0xa0);
    I2CWaitAck();
    I2CSendByte(dat);
    I2CWaitAck();
    I2CStop();
        
    I2CStart();
    I2CSendByte(0xa1);
    I2CWaitAck();
    datt = I2CReceiveByte();
    I2CWaitAck();
    I2CStop();
    return datt;
}

我们的EEPROM一个数据存放单元只能存放一个字节的数据

如果需要存入一个int(两个字节)类型的数据,需要分开存放进行写入,注意写入需要一定的时间,因此需要进行一个10ms的延时

读的时候需要进行位操作,把第一个字节的数据移到高八位,再与上我们的低八位即可

写:
read_count1 = eeprom_count >> 8;
read_count2 = eeprom_count&0xff;
eeprom_write(1,read_count1);
HAL_Delay(10);
eeprom_write(2,read_count2);

读:
eeprom_count = (eeprom_read(1)<<8) + eeprom_read(2);

以上就是我们的EEPROM读写操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值