nick_zm 发表于 2015-10-15 15:57:09

树莓派使用实时时钟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

huangshan78 发表于 2015-10-19 22:11:18

{:soso_e179:}

suoma 发表于 2017-3-6 14:33:44

如果时钟电池没电了,时钟又要重新设置,有点麻烦
页: [1]
查看完整版本: 树莓派使用实时时钟DS3231