N76E003模拟EEPROM读取和保存应用配置
N76E003模拟EEPROM读取和保存应用配置的代码参考了文章:
https://blog.youkuaiyun.com/u014798590/article/details/89268198
我在这个文章代码的基础上优化了下空间,同时更方便配置保存。
用法:在结构体store_config_t内添加想要保存的配置即可,由于是整页擦除,为了不丢失其他配置,保存前需要同步整个store_config_t内容,然后再整体保存。
注意STORE_DATA_SIZE的值要大于store_config_t的大小。
读写配置参考test_flash调用方式。
#define DEF_CFG_VAL_U8 0xFF
#define DEF_CFG_VAL_U16 0xFFFF
typedef struct store_config_struct
{
uint8_t enable;
uint8_t val_u8;
int val_s16;
uint16_t val_u16;
} store_config_t;
int load_config(store_config_t *p_store_cfg);
int save_config(store_config_t *p_store_cfg);
void test_flash(void);
#define FLASH_STORE_ADDR_BASE 0x4700//位于地址末端.4700~47FF共256字节
#define PER_PAGE_SIZE 128
#define EN_OPTIMIZE_XDATA_BUFFER_SIZE
#ifndef EN_OPTIMIZE_XDATA_BUFFER_SIZE
#define STORE_DATA_SIZE 128
#else
#define STORE_DATA_SIZE 16 /*set to sizeof(store_config_t) */
#endif
volatile uint8_t xdata page_buffer[STORE_DATA_SIZE];
uint16_t Read_APROM_WORD(uint16_t *read_addr)
{
uint16_t rdata;
uint16_t code *u16_addr = (uint16_t code *)read_addr;
rdata = *u16_addr;
return rdata;
}
#ifndef EN_OPTIMIZE_XDATA_BUFFER_SIZE
void Write_DATAFLASH_DATA(uint16_t u16EPAddr,
uint8_t *src_data_ptr,
in
N76E003 EEPROM配置

本文介绍N76E003单片机使用模拟EEPROM进行配置保存和读取的方法。通过优化代码空间,实现了配置项的高效管理。提供了具体的实现代码和测试示例。
最低0.47元/天 解锁文章
6683

被折叠的 条评论
为什么被折叠?



