【树莓派5 测评】 + RTC测试(zmj)
树莓派5开发板十分贴心的内置RTC(Real-Time-Clock,实时时钟),本文主要针对RTC做功能测试。 1. RTC简介RTC实时时钟芯片大多采用精度较高的晶体振荡器作为时钟源。此外,RTC接口还可以用于实现定时器功能,例如定时唤醒、定时中断等。这对于需要精确控制时间的应用程序来说是非常有用的。 对于树莓派5来讲,可以通过位于USB-C电源连接器右侧的电路板上的J5 (带 JST 型 SH 2P 接头的电线)连接器进行钮扣电池供电,这样在断网或者掉电的情况下RTC仍然可以保存时钟信息。 2. RTC使用通常RTC时钟的使用方式为: - //------RTC时钟的使用方式之一
- a.当系统启动时,系统通过访问RTC获取硬件时间,然后更新为系统时间。
- b.当针对系统时间做出修改时,通过写入RTC保存时间,以便下次启动时使用新的系统时间。
- //------互联网授时
- 当前系统暂时缺少互联网授时功能,故不做展开测试。
复制代码初始系统启动时,系统通过访问RTC获取硬件时间,然后更新为系统时间。 当针对系统时间做出修改时,通过写入RTC保存时间,以便下次启动时使用新的系统时间。 - //------RTC测试流程
- a.查看RTC设备
- ls -la /dev/rtc*
- b.查看CPU内部集成的RTC时钟(硬件时间)
- sudo hwclock
- 或者
- sudo hwclock -r
- c.查看系统时间(软件时间):与RTC时钟一致
- date
- d.修改系统时间(修改为2023年10月1日20点)
- date -s '2023.10.01-20:00:00'
- e.RTC时间修改为系统时间
- hwclock -w
- f.重新查看RTC时间,发现已经变为修改后的时间
- hwclock -r
- //------Log信息(测试RTC的读取功能)
- zhaomeijing@raspberrypi5:~/workspace/18_gpio/rtc$ cat rtc_test.sh
- #!/bin/bash
- echo "//------------------------------------"
- # ------
- echo "//------There is 1 rtc device"
- echo "//---cmd: ls /dev/rtc*"
- echo "//---result:"\
- ls /dev | grep "rtc"
- # rtc0
- ls /dev/rtc*
- # ------
- echo "//------Check RTC Name"
- echo "//---cmd: cat /sys/class/rtc/rtc0/name"
- echo "//---result:"
- cat /sys/class/rtc/rtc0/name
- # rpi-rtc soc:rpi_rtc
- # ------
- echo "//------Now Read RTC and system-time"
- echo "//---cmd: hwclock -r && date"
- echo "//---result:"
- hwclock -r && date
- # 2024-04-30 01:53:37.506567+08:00
- # Tue 30 Apr 01:53:37 CST 2024
- echo "//------------------------------------"
- zhaomeijing@raspberrypi5:~/workspace/18_gpio/rtc$ sudo ./rtc_test.sh
- //------------------------------------
- //------There is 1 rtc device
- //---cmd: ls /dev/rtc*
- /dev/rtc /dev/rtc0
- //------Check RTC Name
- //---cmd: cat /sys/class/rtc/rtc0/name
- //---result:
- rpi-rtc soc:rpi_rtc
- //------Now Read RTC and system-time
- //---cmd: hwclock -r && date
- //---result:
- 2024-04-30 02:03:45.423122+08:00
- Tue 30 Apr 02:03:45 CST 2024
- //------------------------------------
- zhaomeijing@raspberrypi5:~/workspace/18_gpio/rtc$
复制代码//------RTC测试结果: //------end
|