- 打卡等级:以坛为家I
- 打卡总天数:312
- 最近打卡:2025-03-11 13:20:13
荣誉版主
- 积分
- 5395
|
发表于 2024-3-19 17:27:21
|
显示全部楼层
extern uint8 read_eeprom_u8 (uint16 u16_addr, uint8 u8_FAC); // 从指定的eeprom/flash地址中读出char型变量
extern uint16 read_eeprom_u16(uint16 u16_addr, uint8 u8_FAC); // 从指定的eeprom/flash地址中读出int型变量
extern uint32 read_eeprom_u32(uint16 u16_addr, uint8 u8_FAC); // 从指定的eeprom/flash地址中读出long型变量
extern bit write_eeprom_u8 (uint8 u8_data, uint16 u16_addr, uint8 u8_FAC); // 将char型变量写入指定的eeprom/flash中
extern bit write_eeprom_u16(uint16 u16_data, uint16 u16_addr, uint8 u8_FAC); // 将int型变量写入指定的eeprom/flash中
extern bit write_eeprom_u32(uint32 u32_data, uint16 u16_addr, uint8 u8_FAC); // 将long型变量写入指定的eeprom/flash中
extern bit write_eeprom_str(uint16 u16_addr, uint16 u16_len, uint8 *u8_data, uint8 u8_FAC); // 将char*指向的字符串写入指定的eeprom/flash中
extern void read_eeprom_str(uint16 u16_addr, uint16 u16_len, uint8 *u8_data, uint8 u8_FAC); // 从eeprom/flash中读出字符串, 存储在char*指向的RAM中
extern void erase_eeprom(uint8 u8_XPAGE, uint8 u8_XPAGE1, uint8 u8_FAC); // 擦除eeprom/flash的指定页,要求page连续送两遍,以提高抗干扰性(注:适用标准型号flash page=1k)
extern bit read_eeprom_like(uint8 u8_XPAGE, uint8 u8_len, uint8 *u8_data, uint8 u8_FAC); // 从指定页循环使用的eeprom/flash空间内,读出长度为u8_LEN的字符串
extern bit write_eeprom_like(uint8 u8_XPAGE, uint8 u8_len, uint8 *u8_data, uint8 u8_FAC); // 从指定页循环使用的eeprom/flash空间内,写入长度为u8_LEN的字符串
// 入口要求: u8_FAC=1 指定eeprom时,u8_len > 1;u8_FAC=0 指定flash时,u8_len > 4 (注:适用标准型号flash page=1k)
// 返回: C=0 --> 读写成功,C=1 --> u8_len长度不符规定或末成功写入
这是早期我写的 eeprom/flash 程序(中颖51), 能指定页循环, 使用的eeprom/flash空间内,读/写长度为u8_LEN的字符串
大家如有兴趣, 我抽空改写成 STC51 专用.
|
|