找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1782|回复: 4
打印 上一主题 下一主题
收起左侧

单片机每次上电总是从ds3231定义的初始化时间开始运行?

[复制链接]
跳转到指定楼层
楼主
ID:908826 发表于 2021-8-28 17:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用单片机当主控来控制ds3231,单片机每次上电总是从我定义的初始化时间开始运行,应该怎么解决呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:624769 发表于 2021-8-28 18:42 | 只看该作者
做一个标志,如:0xA5;  存到 DS3231的RAM 里面,改写初始化程序先判断,DS3231 的 RAM 是否有这个标志,没有则初始化,有则不初始化,初始化完成后,在DS3231的RAM中写入该标志。
另外,DS3231没有初始化时的年份是多少,判断这个年份,如果不是未初始化时的年份则不初始化,否则就初始化。
回复

使用道具 举报

板凳
ID:401564 发表于 2021-8-29 00:03 | 只看该作者
用DS3231你总得调节时间吧?那就得要一个按键,那么,默认从不去管DS3231,可以是按键长按或者是双击之类的才去设定DS3231就可以了
又或者是单片机上电就检测某个按键,低电平就设定DS3231,这样就达到了一个"按着某个按键给单片机上电就去管DS3231,不然就不管DS3231了"
回复

使用道具 举报

地板
ID:584814 发表于 2021-8-31 08:42 | 只看该作者
去掉初始化语句中修改时钟时间的部分,将其移到调时函数里以备调用。
记得给 DS3231加上电池,否则掉电后时间会归零。
回复

使用道具 举报

5#
ID:468209 发表于 2021-9-28 14:31 来自手机 | 只看该作者
  月份没有00月 日也没有00日  让程序检测月日就可以了  如果检测是00月00日则初始化  否则跳过不初化  因为一搬时钟芯片只有第一次通月日才会00月00日 通电设后时间只一直走 除非时间芯片备用电池没有电  这段程序写在while循环外 不要写在while循环内 因为上电紧紧检测一次就可以了
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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