蓝桥杯嵌入式-EEPROM
本篇文章是在蓝桥杯嵌入式-按键完整的项目下补充完成的。如果需要代码,直接看第四部分的下载链接。
一、STM32CubMX配置
注:因为赛点资源包提供了I2C库相关的内容,其中包含了EEPROM所需要配置的引脚内容,因此不用进行STM32CubMX配置。
1.1 资源包相关内容引用


二、keil5配置
2.1 添加I2C库

2.2 main.c
2.2.1 修改位置

2.2.2 对应代码
I2CInit();
2.3 task.h
2.3.1 修改位置

2.3.2 对应代码
#include "i2c_hal.h"
2.4 i2c_hal.c
2.4.1 修改位置

2.4.2 对应代码
/* EEPROM写入函数 */
void eeprom_write(uint8_t*EEPROM_String,uint8_t addr,uint8_t num)
{
I2CStart();
I2CSendByte(0xa0);
I2CSendAck();
I2CSendByte(addr);
I2CSendAck();
while(num--)
{
I2CSendByte(*EEPROM_String++);
I2CSendAck();
delay1(200);
}
I2CStop();
HAL_Delay(5);
}
/* EERPROM读取函数 */
void eeprom_read(uint8_t*EEPROM_String,uint8_t addr,uint8_t num)
{
I2CStart();
I2CSendByte(0xa0);
I2CSendAck();
I2CSendByte(addr);
I2CSendAck();
I2CStart();
I2CSendByte(0xa1);
I2CSendAck();
while(num--)
{
*EEPROM_String++ = I2CReceiveByte();
if(num)
I2CSendAck();
else
I2CSendNotAck();
}
I2CStop();
}
2.5 i2c_hal.h
2.5.1 修改位置

2.5.2 对应代码
void eeprom_write(uint8_t*EEPROM_String,uint8_t addr,uint8_t num);
void eeprom_read(uint8_t*EEPROM_String,uint8_t addr,uint8_t num);
三、其他
3.1 完整代码下载
资料下载:https://pan.quark.cn/s/08f8e6116512








