C语言以结构体的方式写入eeprom数据
unsigned char min_change0=0, //要保存的变量值第一组,每一次改变都会保存 unsigned char min_change_backup0=0; //该变量为中间变量,用于与min_change做对比,下同 unsigned char min_change1=0, //要保存的变量值第二组,每一次改变都会保存 unsigned char min_change_backup1=0; unsigned char min_change2=0, //要保存的变量值第三组,每一次改变都会保存 unsigned char min_change_backup2=0; void EEPROM_Write(timeset*, unsigned char, unsigned char) ; //数据保存并写入EEPROM EEPROM_write(unsigned char, unsigned char, ); //内部EEPROM写入函数 typedef struct EEPROM_Save { unsigned char* min_set; unsigned char* min_set_backup; } timeset; timeset EEPROM_SAVE[3] ={ //定义并初始化一个结构体数组,数组元素是指针,数组元素为三组需要保存的数据 {&min_change0, &min_change_backup0}, {&min_change1, &min_change_backup1}, {&min_change2, &min_change_backup2} }; int main(void) { while(1) { for(int j=0; j <3; j++) { EEPROM_Write(EEPROM_SAVE, j, (j+1)) ; } } } void EEPROM_Write(timeset* table, unsigned char i, unsigned char addr) { if (*(table[i].min_set) != *(table[i].min_set_backup)) //如果min_change和min_change_backup不相等,则开始保存 { *(table[i].min_set_backup) = *(table[i].min_set) ; //保存数据 EEPROM_write(addr, *(table[i].min_set_backup)); //写入EEPROM } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用