首页 理论教育 快速学习EEPROM访问方法

快速学习EEPROM访问方法

时间:2023-11-20 理论教育 版权反馈
【摘要】:EEPROM在运行时可以使用库函数访问,在调用这些函数之前加入#include。可是对EEPROM单元少于256B的MCU,即使不需要高地址字节它们也是欠佳的,因为它仍然是要写的。如果它关系重大,可以为EEPROM较少的目标装置重新编译库源代码。注意因为AVR单片机的硬件原因,初始化EEPROM数据至0地址是不可以使用的。int EEPROMwrite,写1B到EEPROM指定位置,如果成功返回0。void EEPROMReadBytes,从EEPROM指定位置处开始读取“size”个字节至由“ptr”指向的缓冲区。

快速学习EEPROM访问方法

EEPROM在运行时可以使用库函数访问,在调用这些函数之前加入#include<eeprom.h>。

EEPROM_READ(int location,object),这个宏调用了EEPROMReadBytes函数,从EE-PROM指定位置读取数据送给数据对象,“object”可以是任意程序变量包括结构和数组。例如:

int i;

EEPROM_Read(0x1,i);//读2B给i

EEPROM_WRITE(int location,object),这个宏调用了EEPROMWriteBytes函数,将数据对象写入到EEPROM的指定位置,“object”可以是任意程序变量包括结构和数组。例如:

int i;

EEPROM_WRITE(0x1,i);//写2B至0x1

这些宏和函数可以用于任意AVR单片机装置。可是对EEPROM单元少于256B的MCU,即使不需要高地址字节它们也是欠佳的,因为它仍然是要写的。如果它关系重大,可以为EEPROM较少的目标装置重新编译库源代码

EEPROM可以在程序源文件中初始化,在C源文件中它作为一个全局变量被分配到特殊调用区域“eeprom”中的,这是可以用附注实现的,结果是产生扩展名为.eep的输出文件。例如:(www.xing528.com)

EEPROM_READ((int)&foo,i);//i等于0x1234

第2个附注是必须的,为返回默认的“data”区域需要重设数据区名称。注意因为AVR单片机的硬件原因,初始化EEPROM数据至0地址是不可以使用的。注意当使用外部描述(比如访问在另一个文件中的foo),不需要加入这个附注。例如:

如果需要下列函数可以直接使用,上面关于宏的描述对大多数装置应该是有能力的。

unsigned char EEPROMread(int location),从EEPROM指定位置读取1B。

int EEPROMwrite(int location,unsigned char byte),写1B到EEPROM指定位置,如果成功返回0。

void EEPROMReadBytes(int location,void*ptr,int size),从EEPROM指定位置处开始读取“size”个字节至由“ptr”指向的缓冲区。

void EEPROMWriteBytes(int location,void*ptr,int size),从EEPROM指定位置处开始写“size”个字节,写的内容由“ptr”指向的缓冲区提供。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈