RTC
本节介绍在树莓派上如何使用 RTC 功能,为后续项目开发奠定基础。
若要使用完整 RTC 功能,请连接 RTC 电池
RTC 关键说明
-
在树莓派中 RTC 设备为
/dev/rtc0 -
在 RTC 设备有连接并且工作正常时,若树莓派在网络连接后自动网络对时,那么 RTC 时间会在自动网络对时后更新时间
-
新版本默认没有
hwclock安装相关指令,请安装相关工具sudo apt install -y util-linux-extra
RTC 操作
- 以下使用
hwclock工具进行测试
获取 RTC 时间
-
若运行
hwclock失败,查看 RTC 关键说明 执行安装指令 -
查看 RTC 时间
sudo hwclock -r -
读取指定 RTC 设备的时间 (
-f:后跟选择的设备,/dev/rtc0:指定操作的 RTC 设备)sudo hwclock -f /dev/rtc0 -r
设置 RTC 时间
-
若运行
hwclock失败,查看 RTC 关键说明执行安装指令 -
设置 RTC 时钟时间:
sudo hwclock --set --date="3/7/2024 16:55:05"
同步 RTC 时钟
-
若运行
hwclock失败,查看 RTC 关键说明 执行安装指令 -
将 RTC 时间和当前系统时间同步(将 RTC 时间修改为当前系统时间)
sudo hwclock -w -
将系统时间和当前 RTC 时间同步(将系统时间修改为当前 RTC 时间)
sudo hwclock -s
定时关机
-
使用
shutdown命令让系统在指定时间后自动关机。 -
注意
-
10 分钟后关机
sudo shutdown -h +10 -
在 23:30 自动关机(注意,此操作前请确认当前时间是否正常,是否需要重新对时)
sudo shutdown -h 23:30
定时开机-低功耗唤醒
要实现此功能,必须连接 RTC 电池,以保证在外部掉电的情况下 RTC 仍能正常工作。
-
进入 EEPROM 配置项
sudo -E rpi-eeprom-config --edit -
在配置文件末尾添加以下内容,以启用定时唤醒功能
POWER_OFF_ON_HALT=1WAKE_ON_GPIO=0 -
修改完成后,重启树莓派使配置生效
sudo reboot -
可以使用以下方法测试功能(效果:配置完成后,将系统关机,10 分钟后内部 RTC 将自动唤醒并重新启动设备。)
-
设置从当前时刻开始 600 秒(10 分钟)后 唤醒
echo +600 | sudo tee /sys/class/rtc/rtc0/wakealarm -
执行关机,等待到指定时间自动开机
sudo halt# 或者 sudo poweroff
-
RTC 电池充电
仅在连接支持充电的 RTC 电池时才可执行此操作
-
进入 config.txt 文件
sudo nano /boot/firmware/config.txt -
在 config.txt 中添加充电配置(其中 3000000 表示最大电压,充电充到 3V 就会关闭充电,电压低于 3V 会启动涓流充电)
dtparam=rtc_bbat_vchg=3000000