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=1
WAKE_ON_GPIO=0 - 修改完成后,重启树莓派使配置生效
sudo reboot - 可以使用以下方法测试功能(效果:配置完成后,将系统关机,10 分钟后内部 RTC 将自动唤醒并重新启动设备。)
- 设置从当前时刻开始 600 秒(10 分钟)后 唤醒
echo +600 | sudo tee /sys/class/rtc/rtc0/wakealarm - 执行关机,等待到指定时间自动开机
sudo halt # 或者 sudo poweroff
- 设置从当前时刻开始 600 秒(10 分钟)后 唤醒
RTC 电池充电
注意
仅在连接支持充电的 RTC 电池时才可执行此操作
- 进入 config.txt 文件(根据你的系统版本选择对应路径)
sudo nano /boot/config.txt # 部分旧版本系统在这个路径sudo nano /boot/firmware/config.txt # 新版系统基本都在这个路径 - 在 config.txt 中添加充电配置(其中 3000000 表示最大电压,充电充到 3V 就会关闭充电,电压低于 3V 会启动涓流充电)
dtparam=rtc_bbat_vchg=3000000