分享

avr

 先知兔 2017-01-01
EEPROMAVR内部有EEPROM,但地址空间与SRAM的不相同。在访问时必须通过I/O寄存器来进行。EEPROM API封装了这些功能,为用户提供了高级接口。使用时要包含eeprom.h。在程序里定义EEPROM数据的例子如下:static uint8_t variable_x __attribute__((section('.eeprom'))) = 0;不同的AVR器件具有不同数目的EEPROM。链接器将针对不同的器件分配存储器空间。1. eeprom_is_ready用法:int eeprom_is_ready(void);说明:此函数用于指示是否可以访问EEPROM。如果EEPROM正在执行写操作,则在4ms内无法访问。此函数查询相应的状态位来指示现在是否可以访问EEPROM。2. eeprom_read_byte用法:uint8_t  eeprom_read_byte (const uint8_t *addr) ;说明:从EEPROM里读出一个字节的内容。参数addr用于指示要读出的地址。3. eeprom_read_word用法:uint16_t  eeprom_read_word (const uint16_t *addr);说明:从EEPROM里读出一个16位的数据。低字节为低8位,高字节为高8位。参数addr为地址。4.eeprom_read_block用法:void eeprom_read_block(void* buf, uint16_t addr, size_t n);说明:读出一块EEROM的内容。参数addr为起始地址,n表明要读取的字节数。数据被读到SRAM的buf里。5. eeprom_write_byte用法:void  eeprom_write_byte (uint8_t *addr, uint8_t value);说明:将8位数据val写入地址为addr的EEPROM存储器里。6. eeprom_write_word用法:void  eeprom_write_word (uint16_t *addr, uint16_t value);说明:将16位数据val写入地址为addr的EEPROM存储器里。7. eeprom_write_block用法:void  eeprom_write_block (const void *pointer_ram, void *pointer_eeprom, size_t n);说明:将n字节的数据块从sram写到EEPROM存储器里。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多