当前位置:网站首页 > 技术博客 > 正文

ds1302时钟芯片引脚功能



这里建立两个库: 和
即存储DS3231的寄存器定义,时间变量结构体定义,等等。
即存储相关IIC的函数定义,软件 IIC 占用的 IO口定义,等等。
在使用上,只需要在DS3231.c中 即可。
同理,因为我们将模块和 IIC 协议进行了分离, 在项目中需要加到其他使用IIC协议的模块时,也只需要在对应模块的文件中 调用软件IIC的头文件 即可。
那么在之后其他项目也可以使用这个时候写好的 软件IIC 库, 只需要改改softwareIIC.h 里对于占用端口的宏定义即可, 十分方便代码的移植😉👍。
若你是初学者(虽然我也是),希望你能养成这样的一个模式、习惯,这对之后的帮助异常的大。

DS3231特性
在这里我用的是在某宝上购买的模块,已经预留出了VCC、GND、SDA、SCL。


第一眼看上去可能有点不明所以,但其实很简单。DS3231采用8421BCD码用来存储时间、日期等数据。(什么是8421BCD码? 你可以简单理解为,一般用四位二进制表示一位数字,比如十进制数字58,对应的8421BCD码即:0101 1000 , 这里1000代表个位数的8 , 0101代表十位数的 5 。)
比如Seconds(秒),寄存器地址是0x00,我们需要读取和设置 秒 ,也只需要对这个寄存器进行读写即可。
秒范围是 00 - 59,故第四位用来存储个位数0 - 9,高三位用来存储十位数 0 - 5 ( 000 - 101)。
其他寄存器同理。
另外关于采用 24小时制 还是 12小时制度,取决于Hours寄存器(0x02)中的第6位。

欧克,关于IIC 借助我上一篇博客相信已经有所掌握,现在我们直接将其使用在和DS3231的通讯和设置中。

 
 

上面是软件IIC的代码,是对于IIC总线的操作,不具体针对某一个模块,可移植性高。

 

                            

  • 上一篇: 动态路由配置步骤
  • 下一篇: html2pdf.js
  • 版权声明


    相关文章:

  • 动态路由配置步骤2025-03-02 18:30:00
  • 蒙特卡洛csdn2025-03-02 18:30:00
  • linux测试指令2025-03-02 18:30:00
  • pyc文件有什么用2025-03-02 18:30:00
  • 存储器详细分类2025-03-02 18:30:00
  • html2pdf.js2025-03-02 18:30:00
  • ipvs使用2025-03-02 18:30:00
  • @aspectj2025-03-02 18:30:00
  • typeof()和instanceof()的用法区别2025-03-02 18:30:00
  • sprintf函数用法详解例子2025-03-02 18:30:00