存储技术
EEPROM (Electrically Erasable Programmable Read-Only Memory),电可擦可编程只读存储器--一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。
EEPROM(电可擦写可编程只读存储器)是可用户更改的只读存储器(ROM),其可通过高于普通电压的作用来擦除和重编程(重写)。不像EPROM芯片,EEPROM不需从计算机中取出即可修改。在一个EEPROM中,当计算机在使用的时候是可频繁地重编程的,EEPROM的寿命是一个很重要的设计考虑参数。EEPROM的一种特殊形式是闪存,其应用通常是个人电脑中的电压来擦写和重编程。
详细介绍ICC自带EEPROM操作函数的操作方法,包括单字符读写,数组读写,结构体读写。
void main(void)
{
unsigned char temp1,temp2; /*定义变量*/
unsigned char buffer[10]; /*定义数组*/
unsigned char buf[]=“AVR与虚拟仪器”; /*定义字符串*/
EEPROMwrite(0x10,‘a’); /*单字符写入到0x10,注意是单引号*/
temp1 = EEPROMread(0x10); /*读一个字符到temp1*/
EEPROM_WRITE(0x20,“abcdefg”); /*写字符串到0x20*/
EEPROM_READ(0x20,temp2); /*读字符到temp2,temp2=a*/
EEPROM_READ(0x20,buffer); /*读字符串到数组中 buffer[10]=abcdefg */
EEPROM_WRITE(0x30,buf); /*数组中的值写到EEPROM中:0X30开始为“AVR与虚拟仪器”*/
while(1)
;
}
调试后的效果:
调试eeprom的时候,记住设置Avr studio保护eeprom数据,否则每次都会将eeprom中的数据改为0xFF。如下图:
打开调试选项:
钩选保护eeprom数据选项:
打开相关观测窗口:
按F10逐条语句运行,查看运行结果。
地址10上的值被改写为“a”
temp1的值变为a,及读取了地址0x10的值a:
abcdefg写入20开始的地址:
temp2的变为地址20的值a:
以0x20开始的值都读入buffer数组中:
预定义的数组中的值写到EEPROM中:
设置不保护EEPROM的值之后,停止调试再开始调试,EEPROM中的值改为0XFF:
通过以上的观察,我想你已经对EEPROM的操作有了一定的认识,同时,你可以打开eeprom.h查看内部内容,是如何定义函数的。
结构体的操作方法与数组类似:(一般简单应用中,你用不到下面的知识,看不懂没有关系,不要被吓倒了)
EEPROMWriteBytes(0x10,&red_flag,sizeof(red_flag)); //将结构写入EEPROM
EEPROMReadBytes(0x10,&red_flag,sizeof(red_flag)); //从EEPROM中将结构全部读出来
旗帜的结构为
/*
typedef struct
{
uint8 position; //0 底 1~180: 中间 180:顶
uint8 fangxiang; //0 静止中 ‘u’ : 向上 ‘d’:向下
uint8 T; //0 总时间
uint8 t; //0 已经耗去的时间
uint8 S; //0 目标路程
uint8 s; //0 已经走过的路程
uint8 move_flag; //0 是否运动中
uint8 half_mode; //0 非半旗 1:半旗
uint8 purse; //0 没有暂停 1:暂停状态
uint8 half_short_or_long;//0 1:半旗长路程中 2:半旗短路程中
uint16 maichong; //0 脉冲数目
}QIZHI;
QIZHI red_flag; //旗帜结构
*/
全部0条评论
快来发表一下你的评论吧 !