【蓝桥杯嵌入式笔记】(十)EEPROM

一、原理图

9d46533f94b6afff45cf805e51f80979.png

二、CubeMX配置

b684e04ec521900fc5bbe9f364569605.png设置PB6,PB7为输出模式即可

三、代码

将这两个官方给好的.c.h文件放入bsp文件夹中,管理加入.c文件,在.c文件加入下列代码

unsigned char eeprom_read(unsigned char addr)
{
	unsigned char dat;
	I2CStart();
	I2CSendByte(0xa0);
	I2CWaitAck();
	I2CSendByte(addr);
	I2CWaitAck();
	I2CStop();
	
	I2CStart();
	I2CSendByte(0xa1);
	I2CWaitAck();
	dat=I2CReceiveByte();
	I2CWaitAck();
	I2CStop();
	return dat;
}

void eeprom_write(unsigned char addr,unsigned char dat)
{
	I2CStart();
	I2CSendByte(0xa0);
	I2CWaitAck();
	I2CSendByte(addr);
	I2CWaitAck();
	I2CSendByte(dat);
	I2CWaitAck();
	I2CStop();
}

最后记得在写入的时候延时5ms

eeprom一个位置只能存储一个8位的数

如果数据位数大于8位,记得进行分割。

eeprom初始化

I2CInit();

判断是否第一次运行的eeprom代码

void eeprom_start()
{
	eeprom_first1=eeprom_read(1); 
	eeprom_first2=eeprom_read(2);
	if( eeprom_first1==234&&eeprom_first2==188 )	//不是第一次
	{
		num=eeprom_read(3);
	}
	else 			//第一次烧录运行
	{
		eeprom_write(1,234);
		HAL_Delay(5);
		eeprom_write(2,188);
		HAL_Delay(5);
	}
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值