本帖最后由 王昱顺 于 2024-3-11 10:09 编辑
DS1302这个器件官方并没有焊接电池,所以并不能掉电走时。但是这个不是最重要的,最重要的是描述其中几个重要标志位的这一句话: 这句话什么意思呢?大致就是说这些重要的标志位上电的时候是没有定义状态的,通俗来讲就是是随机的,你不能确定上电的时候是什么状态,因为正常情况下DS1302根本不会断电,所以也不用考虑这个问题。但是因为蓝桥杯的板子上没有电池,所以我们需要多加入一段初始化标志位的代码来设置DS1302。
那么有哪些重要的标志位呢?我们看一下官方的技术手册: 其中,CH代表的是停止走时标志位,写1停止走时,所以我们需要写0来确保时钟走时正常。12/24(Low)代表的24小时标志位,写0为24小时制,这个要看我们题目要求的什么。 当然,设置这些标志位的时候,还需要把WP写保护这个标志给置于0,才能正常的写入。
这里给出我的初始化实例代码: 到这里DS1302的初始化就完成了,那么如果你遇到了时钟走的特别慢(例如现实中过了3~4秒,数字才变化了1S),这个时候你就需要看一下你的晶振出没出问题了(一般是出不了问题的),如果没有出那么就需要检查一下你的代码是否在重新打开了写保护,不然就容易出现错误的数据,进而造成更大的危险。
比如官方技术手册里面的这一段:“Illogical time and dateentries result in undefined operation.” (不合逻辑的时间和日期条目将导致未定义的操作)
|