第三十五课--Microduino EEPROM读写实验/zh
Language | English |
---|
目的本教程将教大家如何使用Microduino中的EEPROM,存储在EEPROM的值将在Microduino-OLED上显示 设备
EEPROM介绍 EEPROM,或写作E2PROM,全称电子抹除式可复写只读存储器 (英语:Electrically-Erasable Programmable Read-Only Memory),是一种可以通过电子方式多次复写的半导体存储设备。 Microduino的控制芯片中都自带了EEPROM,它的用途比较广,掉电后需要保存的信息都可以存储到这里。比如电子保险箱的密码。
原理图程序#include <avr/eeprom.h>
#include "U8glib.h"
#define EEPROM_write(address, var) eeprom_write_block((const void *)&(var), (void *)(address), sizeof(var))
#define EEPROM_read(address, var) eeprom_read_block((void *)&(var), (const void *)(address), sizeof(var))
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);//定义OLED连接方式
// 定义一个包含 int 类别的 config_type 结构
struct config_type
{
int num;
};
void draw() {
// 1) 定义结构变量config,并定义config的内容
config_type config;
config.num = random(3000);//在0~3000里选定随机数
// 2) 把变量config存储到EEPROM,从地址0开始写入。
EEPROM_write(0, config);
// 3) 从EEPROM地址0开始读取,结果存储在config_readback
config_type config_readback;
EEPROM_read(0, config_readback);
u8g.setFont(u8g_font_unifont);//字体1
u8g.drawStr( 0, 16, "Num:");
u8g.setFont(u8g_font_7x13);//字体2
u8g.setPrintPos(0, 32);
u8g.print(config_readback.num);
}
void setup()
{
}
void loop()
{
u8g.firstPage();
do {
draw();
}
while( u8g.nextPage() );
delay(2000);//延迟两秒
}
函数说明: EEPROMwrite(addr,data)函数用于在指定地址写入数据,addr表示要写入的地址,data表示要写入的数据 EEPROM_read(addr,data)函数用于在指定地址读出数据,addr表示要读出的地址,data表示要读出的数据 random(num)函数用于生成随机数,num用于指定生成随机数的范围
调试步骤一:把代码复制到IDE中,编译 步骤二:运行代码 步骤三:查看Microduino-OLED显示
结果Microduino-OLED将显示EEPROM读写结果,每两秒钟随机换数字 视频 |