I2C读取RTC

下面以DS3231时钟模块为例说明如何读写I2C接口的时钟芯片。

DS3231是一款高精度I2C实时时钟(RTC)器件,具有集成的温度补偿晶体振荡器(TCXO)。该器件包含电池输入端,断开主电源时仍可保持精确计时。集成的晶体振荡器可提高器件的长期精确度。DS3231的寄存器能保存秒、分、时、星期、日期、月、年和闹钟设置等信息。少于31天的月份,可自动调整月末日期,包括闰年补偿。时钟的工作格式为24小时或带AM/PM指示的12小时格式。

查看DS3231芯片手册,寄存器地址为0x00开始的7个字节保存的是时间信息

1、在主界面上拖拽生成如下界面,左上角的时钟控件显示系统日期,右上角的时钟控件显示系统时间,蓝色标签用来显示DS3231模块的时间,底部的按钮用来保存正确的系统的时间到DS3231时钟模块。

2、在按钮textButton的动作脚本中将系统的当前时间写入RTC时钟芯片

3、在系统控件I2C的动作脚本中,检测到DS3231模块后,读取模块上的时间,设置系统时间

4、在I2C系统控件的轮询方法中读取DS3231模块的时间,显示在界面的蓝色标签上

5、在第3步中我们使用到了一个转换方法 d2h, 我们全局代码中定义了该方法

6、构建工程,将生成的App通过调试器下载到Express Pi设备上, 点击选项菜单>同步时间,将电脑上的准确时间同步给Pi设备,同步后Pi设备的系统时间与电脑上的时间一致。

7、点击界面上的"读取系统时间写入”按钮,观察蓝色标签上的时间与系统时间比较,蓝色标签的内容就是通过轮询的方式,从DS3231时钟模块读取的时间。可以将Pi设备直接断电重启,检查重启后的系统时间以及DS3231时钟模块的时间是否都正确。

本实例完整工程,请在WeStudio中打开例程中的“外挂RTC时钟”

results matching ""

    No results matching ""