【STC15库函数上手笔记】10、EEPROM
目錄
- 硬件知識
- 基本介紹
- 軟件知識
- EEPROM多字節讀函數
- EEPROM多字節寫函數
- EEPROM扇區擦除函數函數
- 測試
- main.c
- 實驗現象
STC實驗箱4
IAP15W4K58S4
Keil uVision V5.29.0.0
PK51 Prof.Developers Kit Version:9.60.0.0
硬件知識
基本介紹
???????摘自《STC15系列單片機器件手冊》
???????STC15系列單片機內部集成了大容量的EEPROM,其與程序空間是分開的。利用ISP/IAP技術可將內部Data Flash當EEPROM,擦寫次數在10萬次以上。EEPROM可分為若干個扇區,每個扇區包含512字節。使用時,建議同一次修改的數據放在同一個扇區,不是同一次修改的數據放在不同的扇區,不一定要用滿。數據存儲器的擦除操作是按扇區進行的。
???????EEPROM可用于保存一些需要在應用過程中修改并且掉電不丟失的參數數據。在用戶程序中,可以對EEPROM進行字節讀/字節編程/扇區擦除操作。在工作電壓Vcc偏低時,建議不要進行EEPROM/IAP操作。
工作電壓過低判斷:此時不要進行EEPROM/IAP操作
PCON:電源控制寄存器
???????LVDF:低壓檢測標志位,當工作電壓Vcc低于低壓檢測門檻電壓時,該位置1。該位要由軟件清0當低壓檢測電路發現工作電壓Vcc偏低時,不要進行EEPROM/IAP操作。
???????5V單片機的低壓檢測門檻電壓:
???????3.3V單片機的低壓檢測門檻電壓:
建議在電壓偏低時,不要操作EEPROM/IAP,燒錄時直接選擇“低壓禁止EEPROM操作”
軟件知識
???????摘自《STC庫函數使用參考》
EEPROM多字節讀函數
EEPROM_read_n
EEPROM多字節寫函數
EEPROM_write_n
EEPROM扇區擦除函數函數
EEPROM_SectorErase
測試
main.c
#include "./Drivers/config.h" #include "./Drivers/delay.h"#include "./Drivers/GPIO.h" #include "./Drivers/EEPROM.h"void GPIO_config(void) {GPIO_InitTypeDef GPIO_InitStructure; //結構定義GPIO_InitStructure.Mode = GPIO_OUT_PP; //指定IO的輸入或輸出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PPGPIO_InitStructure.Pin = GPIO_Pin_6 | GPIO_Pin_7; //指定要初始化的IO, 或操作GPIO_Inilize(GPIO_P4,&GPIO_InitStructure); //初始化為推挽輸出 }void main(void) {char test[2] = {0};GPIO_config();EEPROM_read_n(0x1234, test, 2);if(test[0] == 'O' && test[1] == 'K'){P47 = 0;while(1);}else{EEPROM_SectorErase(0x1234);EEPROM_write_n(0x1234, "OK", 2);P46 = 0;while(1);} }實驗現象
第一次運行時沒有數據,點亮LED10,重啟后已有數據,點亮LED9。
總結
以上是生活随笔為你收集整理的【STC15库函数上手笔记】10、EEPROM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件开发了10年,迷茫了
- 下一篇: 华为模拟器路由器交换机远程控制