树莓派使用实时时钟DS3231
本帖最后由 nick_zm 于 2015-10-15 16:04 编辑树莓派没有硬件实时时钟,每次启动后通过联网同步时间,关机时保存当下时间。再次启动如没联网的话就不准了。原来玩arduino时买的i2c接口的ds3231走时精确,可以派上用场。最新版的RASPBIAN JESSIE有了不小的变化,很多内核模块在config.txt中配置就可以启动了。而且新内核增加了不少东西,使用起来更方便,距离物联网硬件更贴近了。以下方式只适用于最新版RASPBIAN JESSIE。
硬件连接第 1:3v 3:i2c1_SDA5:i2c1_SCL9:GND 针
编辑/boot/config.txt 在末尾加入
dtparam=i2c_arm=on
dtoverlay=i2c-rtc,ds3231
开启i2c接口,并加载ds3231支持,overlays下有说明可以支持ds3231,ds1307等6种时钟芯片。
新内核用systemd来作为标准的系统和服务管理器,替代之前系统启动时使用的SysV init脚本。
创建两个文件
/lib/systemd/system/hwclock-start.service
Description=Set time from RTC on startup
After=network.target
Type=oneshot
ExecStart=/sbin/hwclock -s
TimeoutSec=0
WantedBy=multi-user.target
/lib/systemd/system/hwclock-stop.service
Description=Synchronise Hardware Clock to System Clock
DefaultDependencies=no
Before=shutdown.target
Type=oneshot
ExecStart=/sbin/hwclock --systohc
WantedBy=reboot.target halt.target poweroff.target
运行命令
systemctl enable hwclock-start hwclock-stop
最后要删除 fake-hwclock 这个假硬件时钟才能使ds3231工作
sudo dpkg --purge fake-hwclock
{:soso_e179:} 如果时钟电池没电了,时钟又要重新设置,有点麻烦
页:
[1]