[东软电量计开发]:ES32L0910本地RTC校准(三)

发布时间:2026/6/10 15:09:39

[东软电量计开发]:ES32L0910本地RTC校准(三) 简介电量计ES32L0910本地有个RTC初始化的日期是1970-01-01 00:00:00如果不校准时间芯片通上电之后会以1970-01-01 00:00:00为起点开始计时那这个时间和现实的物理时间是相违背的于是乎我们就需要去校准一下本地RTC一般来说校准时间的方式有很多种可以通过IIC连续写入字节依次把年、月、日、时间写进去也可以把RTC转化为UTC时间戳秒发出去电量计再对应转换成RTC。电量计ES32L0910采用的是UTC时间戳校准的方式这里采用AI编程把模块化的程序用AI生成就可以我们主要对AI生成的程序审核、DEBUG、优化等这样就简单多了效率大大提升。接下来紧跟步伐一步步来深入了解下这里面的逻辑。一、何为UTC1.1 UTCUTC是协调世界时间全球统一的标准时间基准基准点为 0 时区不分时区、没有夏令时全球同一时刻 UTC 数值完全一致。那北京时间属于东八区和UTC的转换规则北京时间UTC 8 小时UTC 北京时间 − 8 小时举例UTC2026-06-09 08:00:00对应北京时间2026-06-09 16:00:001.2 UTC时间戳从 1970-01-01 00:00:00 UTC 到现在的总秒数。单位秒10 位数字全球统一无时区、无夏令时北京时间戳 UTC时间戳 8×3600。对UTC的概念了解清楚了那下一步就可以实现RTC转换UTC时间戳了。二、RTC转化为UTC时间戳根据上面我们知道北京时间戳UTC时间戳 8×3600UTC时间戳即1970-01-01 00:00:00到现在的总秒数。咱们先把UTC的时间戳来转化一下。函数如下图​​​​​这个函数最后的返回值就是北京时间的时间戳这里传参的时候传入的就是RTC时间是主控的RTC时间RTC的数据类型定义如下图这里说明一下这个小模块的程序是AI生成的用的Cursor工具只需要的把需求明确输入即可不到1分钟就生成了如果自己手搓的话咋滴也得个把小时还可能有漏洞更耗时AI生成基本一次性就成功了。主控的RTC转化为UTC时间戳之后紧接着就是设置给电量计。三、电量计UTC根据“电量计编程手册”设置UTC的寄存器如下图然后把UTC时间戳分成4个8位的数组分别设置上面寄存器即可。32位数据转换为8位数组函数如下图设置完这一步基本就完成了RTC的校准了下面就可以读一下电量计的RTC是否对应上设置的实时时间按照以上流程操作基本应该是没问题的。这里提示下可以根据自己的软件做一些容错性设计比如RTC校准的时间形成闭环做一下回读。四、总结敲重点根据以上的操作流程这里总结一下哪些地方需要注意-主控RTC转UTC时间戳先获取主控的RTC时间转化为UTC时间戳这里注意下闰年月份问题-电量计UTC设置UTC时间戳是32位数据根据电量计的寄存器把UTC设置进去-回读设置设置OK之后回读是否设置成功形成闭环才能保证没问题。

相关新闻