0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arduino EEPROM设置初始化

454398 来源:wv 2019-10-21 17:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:什么是EEPROM

EEPROM是一个很小的存储器,即使在Arduino板断电时,其值也会保留。这就像一个很小的硬盘驱动器,因此您可以在下次启动设备时存储参数。根据Arduino板的类型,每个板上的可用存储量会有所不同,例如Uno有1024字节,Mega有4096字节,LilyPad有512字节。

重要的是要注意,所有EEPROM都有有限数量的写周期。 Atmel为Arduino上的EEPROM指定了大约100000写/擦除周期的预期寿命。这听起来好像很多写操作,但是如果您正在循环读取和写入内容,则很容易达到此限制。一旦一个位置被写入和擦除了太多次,它就会开始变得不可靠。它可能无法返回正确的数据,或者无法从相邻位返回值。

步骤2:导入库

要使用此内存,我们首先包括Arduino提供的库。该库提供了两种方法:读取和写入相应的操作。读取功能接受我们要读取的地址,而写入功能接受我们要写入的地址和值。

在我们的示例中,目标是在Arduino的每次启动时准备好一系列的设置,因此我们首先定义要用于存储的数组,并为每个对象定义地址。我们要存储的设置。在我们有1024个可用字节的芯片中,地址位置将从0到1023。

步骤3:设置初始化标志

初始设置默认值的技巧是使用地址之一作为指示,以了解是否已初始化设置。我使用了最后一个地址,因为它通常不用于其他任何地方。如果存储的值中有一个“ T”字符,loadSettings函数将首先检查该位置,如果没有,它将通过设置进行设置,并为每个值写入初始值。完成后,它将立即将跟踪初始化设置的位置的值设置为“ T”字符,并且下次打开Arduino电源时,我们将不再初始化值,而是将保存的数据读入

步骤4:更新设置

要更新值,我们可以使用我们拥有的write函数关于初始化,但更好的方法是使用提供的更新功能。该功能的作用是,它首先检查我们要保存的值是否与EEPROM中已经存在的值相同,如果不保存则不更新。这样,它会尝试减少写操作的次数,以延长EEPROM的寿命。

步骤5:尽情享受吧!

我希望这个Instructable对您有帮助,并且您设法学到了一些东西。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • EEPROM
    +关注

    关注

    9

    文章

    1146

    浏览量

    86359
  • Arduino
    +关注

    关注

    190

    文章

    6527

    浏览量

    197489
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Noinit RAM 部分 KW45初始化有什么原因

    “startup_KW45B41Z83.c”中的 ResetISR 执行某些 RAM 部分的初始化。通过这种方式,我的区域内存中的变量被重置了,尽管它们是用“no_init”关键字声明的,并且该区域被设置为未初始化的区域
    发表于 04-29 06:57

    ELF-RV112B RKNN模型加载与运行时初始化

    ELF-RV112B RKNN模型加载与运行时初始化
    的头像 发表于 04-03 16:08 173次阅读
    ELF-RV112B RKNN模型加载与运行时<b class='flag-5'>初始化</b>

    PC强实时运动控制(一):C#的EtherCAT总线初始化(下)

    通过使用配置工具导出ZAR文件进行EtherCAT总线初始化
    的头像 发表于 02-05 10:00 2389次阅读
    PC强实时运动控制(一):C#的EtherCAT总线<b class='flag-5'>初始化</b>(下)

    国民技术发布N32Cube芯片配置与初始化代码生成工具

    1月30日,国民技术(NSING)正式发布N32Cube——芯片配置与初始化代码生成工具,让时钟、引脚与外设的配置一目了然、轻松上手!
    的头像 发表于 02-02 15:26 913次阅读
    国民技术发布N32Cube芯片配置与<b class='flag-5'>初始化</b>代码生成工具

    MCU工程初始化,到底该不该交给工具?

    背景 工程初始化重复性高,但出错成本大。工程师常问:交给工具是不是会丢失掌控? 工具可做的事 时钟树、引脚复用、外设配置 工程生成、代码模板套用 参数校验和约束检查 工程师仍需做的事 特殊业务逻辑
    的头像 发表于 01-29 10:18 253次阅读
    MCU工程<b class='flag-5'>初始化</b>,到底该不该交给工具?

    EtherCAT总线初始化步骤

    的关键环节,涉及硬件配置、软件设置以及网络拓扑的建立。以下是EtherCAT总线初始化的详细步骤,结合实际应用场景和常见问题解决方案,为工程师提供系统的操作指南。 1. 硬件连接与物理层检查
    的头像 发表于 12-22 10:10 978次阅读
    EtherCAT总线<b class='flag-5'>初始化</b>步骤

    瀚海微SD NAND TF卡硬件识别与初始化类问题探讨

    在瀚海微SD NAND/TF卡的实际应用中,硬件识别与初始化是保障设备正常运行的首要环节,该环节出现故障会直接导致存储卡无法投入使用,尤其在工业控制、车载设备等关键场景中,可能引发设备停机、数据丢失
    的头像 发表于 11-18 09:58 805次阅读
    瀚海微SD NAND  TF卡硬件识别与<b class='flag-5'>初始化</b>类问题探讨

    串口通信基石:Air8000下Modbus RTU串口初始化详解!

    串口初始化是Modbus RTU通信稳定可靠的关键起点。本篇深入剖析Air8000开发板串口参数配置、初始化代码实现及调试要点,结合master_rtu示例,分享实际操作中的经验与避坑指南,让您
    的头像 发表于 10-28 16:33 1791次阅读
    串口通信基石:Air8000下Modbus RTU串口<b class='flag-5'>初始化</b>详解!

    NVMe高速传输之摆脱XDMA设计33:初始化功能验证与分析

    模型。 在这里以最小存储子系统模型为例说明对初始化功能的验证与分析。 在本节测试用例中, 设置桥设备模型不启用 BAR 空间, 设置 NVMe 设备模型 BAR0 空间大小为 64KB, 不启用其余
    发表于 10-08 08:02

    GraniStudio:IO初始化以及IO资源配置例程

    1.文件运行 导入工程 双击运行桌面GraniStudio.exe。 通过引导界面导入IO初始化以及IO资源配置例程,点击导入按钮。 打开IO初始化以及IO资源配置例程所在路径,选中IO初始化以及
    的头像 发表于 08-22 17:34 1070次阅读
    GraniStudio:IO<b class='flag-5'>初始化</b>以及IO资源配置例程

    GraniStudio:初始化例程

    1.文件运行 导入工程 双击运行桌面GraniStudio.exe。 通过引导界面导入初始化例程,点击导入按钮。 打开初始化例程所在路径,选中初始化.gsp文件,点击打开,完成导入。 2.功能
    的头像 发表于 08-22 16:45 1050次阅读
    GraniStudio:<b class='flag-5'>初始化</b>例程

    MCU外设初始化:为什么参数配置必须优先于使能

    在微控制器领域,初始化参数配置阶段至关重要。此时,虽无电源驱动,但微控制器在使能信号到来前,借初始化参数配置这一精细步骤,开启关键准备进程。初始化参数配置如同物理坐标锚定、逻辑指令部署、内在秩序预设
    的头像 发表于 08-13 10:38 982次阅读

    定义IO初始化结构体

    由上述IOPORT相关功能的枚举类型我们可以知道,在对IOPORT模块进行初始化时需要根据情况配置它们。因此我们定义一个IOPORT初始化的结构体类型IOPORT_Init_t,它的成员包括了由上述所有枚举类型所声明的变量,因此该结构体类型的变量可以包含IOPORT的相关
    的头像 发表于 07-16 16:26 1580次阅读

    IM系列设备过载故障:界面初始化终止的诊断流程与修复指南

    当 IM 系列设备出现过载故障导致界面初始化终止时,通常表现为设备启动后操作界面无显示、指示灯异常闪烁或初始化进度条停滞不前,同时可能伴随设备运行异响或异常发热。初步判断时,可观察设备是否有错
    的头像 发表于 06-28 09:47 1411次阅读

    IM 系列设备过载保护机制下界面初始化中断的底层逻辑与解决方案

    一、过载保护机制与界面初始化的关联基础 IM 系列设备的过载保护机制是保障设备安全运行的核心功能,其通过传感器实时采集设备运行参数,如电流、电压、温度、系统资源占用率等。一旦这些参数超出预设阈值
    的头像 发表于 06-27 09:58 694次阅读