Arduino学习笔记⑦ EEPROM断电保存数据
1.前言
????EEPROM,叫做電可擦可編程可讀寄存器(是不是覺得好官方,不知道是什么鬼?反正我也一臉懵逼),只需要知道這是一種斷電后數據不會丟失的存儲設備,可以用來應對需要做記錄做保存的場合。簡而言之,若想斷電后Arduino仍然記住數據,就可以使用EEPROM。至于板子是否支持EEPROM,可以自主去查看板子的簡潔。常見Arduino的EEPROM如下:
????Arduino EEPROM類庫中,EEPROM的地址被設定從0開始,每個地址可以存儲1B數據。所以當數據大于1B時,需要逐個字節讀寫。
- Arduino UNO、Arduino Leonardo 的EEPROM有1KB=1024B的存儲空間,對應地址則為0~1023;
- Arduino Mega2560的EEPROM有4KB=4096B的存儲空間,對應地址則為0~4095;
????Arduino有EEPROM類庫,只需要調用EEPROM.h頭文件,然后使用write()和read()函數就可以對EEPROM進行讀寫操作;
常用函數
1.1 write()
作用:對指定地址寫入數據;
語法: EEPROM.write(address,value);
參數:
- address,EEPROM地址,起始地址為0;
- value 寫入的數據,byte型,意味著如果傳入數據大于這個范圍會被截斷;
返回值:無;
1.2 read()
作用:從指定地址讀出數據。一次讀取1B數據。如果指定地址沒有數據,則讀出值為255;
語法: EEPROM.read(address);
參數:
- address,EEPROM地址,起始地址為0;
返回值:byte型,返回指定地址存儲的數據;
注意:
- EEPROM有10萬次的擦寫壽命,一次EEPROM.write會占用3ms,如果程序不斷擦寫EEPROM,則不用多久就損壞EEPROM,隨意注意不要頻繁擦寫,在真正需要的時候再考慮使用,加入什么延時之類的。
3.實驗
實驗內容:
在setup中往地址0~3中依次寫入2~5,然后在loop中讀取地址0~3然后把數據打印到串口顯示器;
實驗代碼:
實驗結果:
4.總結
整體上這課還是非常簡單的,唯一需要注意就是不要擦寫頻繁。講完這課后,我就可以在藍牙多彩燈加入這個功能了,記錄存儲當前燈顏色然后下次打開就可以使用。
轉載于:https://www.cnblogs.com/danpianjicainiao/p/11048655.html
總結
以上是生活随笔為你收集整理的Arduino学习笔记⑦ EEPROM断电保存数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 应急模拟系统功能结构图
- 下一篇: 调度-资源隔离