极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8125|回复: 5

树莓派使用实时时钟DS3231

[复制链接]
发表于 2015-10-15 15:57:09 | 显示全部楼层 |阅读模式
本帖最后由 nick_zm 于 2015-10-15 16:04 编辑

    树莓派没有硬件实时时钟,每次启动后通过联网同步时间,关机时保存当下时间。再次启动如没联网的话就不准了。原来玩arduino时买的i2c接口的ds3231走时精确,可以派上用场。最新版的RASPBIAN JESSIE有了不小的变化,很多内核模块在config.txt中配置就可以启动了。而且新内核增加了不少东西,使用起来更方便,距离物联网硬件更贴近了。以下方式只适用于最新版RASPBIAN JESSIE。
    硬件连接第     1:3v   3:i2c1_SDA  5:i2c1_SCL  9: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[pre lang="sh" line="1" file="hwclock-start.service"][Unit]
Description=Set time from RTC on startup
After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/hwclock -s
TimeoutSec=0

[Install]
WantedBy=multi-user.target[/code]

/lib/systemd/system/hwclock-stop.service
[pre lang="" line="1" file="hwclock-stop.service"][Unit]
Description=Synchronise Hardware Clock to System Clock
DefaultDependencies=no
Before=shutdown.target

[Service]
Type=oneshot
ExecStart=/sbin/hwclock --systohc

[Install]
WantedBy=reboot.target halt.target poweroff.target[/code]

运行命令
systemctl enable hwclock-start hwclock-stop

最后要删除 fake-hwclock 这个假硬件时钟才能使ds3231工作
sudo dpkg --purge fake-hwclock
IMG_20151015_155345.jpg
回复

使用道具 举报

发表于 2015-10-19 22:11:18 | 显示全部楼层
{:soso_e179:}
回复 支持 反对

使用道具 举报

发表于 2017-3-6 14:33:44 | 显示全部楼层
如果时钟电池没电了,时钟又要重新设置,有点麻烦
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )

GMT+8, 2019-3-21 20:56 , Processed in 0.050994 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表