当前位置:首页 > 实用技巧 >

单片机开发中如何管理eeprom(单片机eeprom擦写次数)

来源:原点资讯(www.yd166.com)时间:2024-02-23 23:27:37作者:YD166手机阅读>>

EEPROM在单片机电子设备中非常常见,相信很多朋友都使用过类似AT24C0x这种使用I²C读写的EEPROM,在项目中,使用不当就容易导致数据丢失,或者异常的情况。

I²C读写EEPROM基础原理

市面上大部分使用I2C通信的EEPROM,控制时序和读写流程都基本相同。

I²C通信原理,说简单不简单,但说难也不难,主要理解基础原理和时序即可。

EEPROM底层驱动

真正实际做过项目的人都知道,好的底层驱动,会给上层应用开发带来很大便利,节省开发时间,以及减少bug发生率

而大部分初学者,或者应届毕业生从事相关开发,一般很少考虑代码的移植性,复用性,或者说容错处理等问题

下面,我简单列两点我在项目中,对EEPROM常用的几项操作。

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。

点击这里找小助理0元领取:

单片机开发中如何管理eeprom,单片机eeprom擦写次数(1)

1.写,再读,验证写入成功

这种方法很好理解:写入之后,再次读去这部分数据,进行一一匹配,验证是否与写入数据一致。

一般我是会重复操作3次,也就是说:写入,再读取,如果超过3次都还失败,那么我则放弃写入,认为写入失败,或芯片异常

这个方法可以简单解决因异常导致写入失败的问题。

2.添加校验信息

在上面一层读验证基础上,对保存一些参数,我一般还会:在参数末尾添加类似“和校验”,或“CRC校验”

假如你连续存储一个有10字节的参数(数据结构),如果因异常修改了中间某一个字节参数,你读出来进行校验,发现不对,则认为这个参数无效。

添加这个校验的目的相信从上面我举例已经明白,就是解决多字节参数中某个字节被恶意修改,导致这个参数无效的问题

3.EEPROM在多任务中添加互斥锁

使用过操作系统的朋友都知道,多线程访问一个资源,一般都存在互斥的关系。简单的说:一个资源,在同一时刻,只能被一个线程操作。

那EEPROM举例:线程A在往EEPROM写10字节数据,刚6个字节时,线程B想要抢占,往EEPROM写入数据。你觉得线程A应不应该放弃I2C总线,让线程B写入呢?

答案肯定是不允许的,所以,就有了互斥锁这么一说。也就是等先占用I2C总线的线程操作完,才释放总线,让其他线程进行操作。

这三点应该是我比较常用了,网上还有其他一些相关的容错处理机制,感兴趣的不妨搜索一下。

我这里就不贴代码了,因芯片型号不同,应用不同,代码就存在差异。但我们目的:在保证满足应用的同时,需考虑代码的移植、复用、以及容错

I²C选择硬件、软件?

我们代码应该使用硬件I2C?还是软件模拟I2C?

这个问题有许多朋友都在问,说句实话,遇到这类有争议的问题,一般来说,需要结合项目实际情况,比如速度、实时性、移植性等。

我遇到这类问题,一般会根据实际情况而定。比如:你的I2C产品要提供给一些不同平台用户,进行二次开发,我觉得软件IO模拟比较好,方便用户嘛。

假如你们公司开发的产品都使用STM32这家公司芯片开发I2C产品,我觉得,你代码可以使用硬件I2C。

转载自:strongerHuang

文章来源于单片机驱动EEPROM常见操作

原文链接:https://mp.weixin.qq.com/s/CHD4cx6Hr1nSPcEQwa_miw

,

栏目热文

单片机安装与调试步骤(单片机软件调试的基本方法)

单片机安装与调试步骤(单片机软件调试的基本方法)

单片机的系统硬件调试,通常有静态调试和动态调试两种不同,前者是通过目测、万能表测试、加电检查、联机检查的方法,在加电于样...

2024-02-24 00:08:24查看全文 >>

wow怀旧服猎人单刷厄运北(wow怀旧服猎人单刷厄运西)

wow怀旧服猎人单刷厄运北(wow怀旧服猎人单刷厄运西)

作者:NGA-粉红猪小妹的爸爸昨晚研究了一个猫科刷大王,这样可以省下隐身药,有两个难点,其它都和以前一样。难点一,一波上...

2024-02-23 23:52:31查看全文 >>

广汽吉奥故障灯亮了(广汽吉奥皮卡车故障灯)

广汽吉奥故障灯亮了(广汽吉奥皮卡车故障灯)

在汽车世界中,当车辆的故障灯亮起时,很多车主会感到一阵紧张和恐慌。然而,随着我在汽车领域的深入探索和不断的亲身经历,我逐...

2024-02-24 00:04:44查看全文 >>

广汽吉奥没有里程表abs灯亮(广汽吉奥里程表不走怎么回事)

广汽吉奥没有里程表abs灯亮(广汽吉奥里程表不走怎么回事)

法拉利官方宣布七届F1世界冠军迈克尔·舒马赫之子米克·舒马赫已经正式加入马拉内罗的青年车手培养项目。Motorsport...

2024-02-23 23:50:28查看全文 >>

51单片机eeprom怎么存数据(单片机eeprom怎么编程序修改密码)

51单片机eeprom怎么存数据(单片机eeprom怎么编程序修改密码)

ROM我们都知道,因为手机的存储硬盘就是指的ROM,比如我们的手机的ROM为128GB,而在我们的Arduino板上,R...

2024-02-23 23:34:07查看全文 >>

单片机系统调试方法及步骤(小白如何学习单片机软件调试)

单片机系统调试方法及步骤(小白如何学习单片机软件调试)

1.1 利用LED进行可视化管理 这种方法需要有多余的I/O。(如果可能,也可以将实现次要功能的I/O暂时借来一用。)...

2024-02-24 00:05:52查看全文 >>

单片机为什么要接eeprom(单片机一般在什么时候写入eeprom)

单片机为什么要接eeprom(单片机一般在什么时候写入eeprom)

摘要:在单片机开发板上或者是核心板上通常会看到除了MCU之外的的芯片—EEPROM和FLASH,一般是AT24CXX、W...

2024-02-23 23:58:44查看全文 >>

单片机eeprom故障表现(单片机常见问题和解决方法)

单片机eeprom故障表现(单片机常见问题和解决方法)

【1. EEPROM的概述】EEPROM(Electrically Erasable Programmable Read...

2024-02-23 23:46:52查看全文 >>

单片机安装与调试教程(单片机编程软件安装教程)

单片机安装与调试教程(单片机编程软件安装教程)

我刚参加工作的时候,用的是stc 51单片机的,51单片机不像stm32那样可以通过st-link在keil上面在线仿真...

2024-02-24 00:05:58查看全文 >>

文档排行