写在前面的话:STM32F0项目进阶系列是硬件系统工程师星克曼以项目进阶的方式写出的入门教程,以项目开发为蓝底,快速学习进入实战。

STM32 I2C总线在上一讲 STM32F0项目进阶之I2C 中已经讲过了,已经将标准库抽象成hal_i2c.c和hal_i2c.h了,下面的就是适配不同的芯片了,这次我们适配一下DS1307。

芯片手册如下:www.maximintegrated.com/en/DS1307.pdf

  1. 电路配置
    引脚图如下:

    引脚描述如下:

    电路配置如下:
  2. BCD格式
    注意:时间和日期的格式均是BCD格式的。
  3. 上电工作
    上电即可以工作,时钟使能的话,就没有其它配置;如果没有使能就看要点二。
  4. 时钟使能
    00h 地址的寄存器第7 位为器件时钟允许位(CH),此位为1则芯片未开始工作,即时钟未走时,所以在上电时单片机要先读出秒,并判断位7(CH)是否为1,如为1要把该位清零写入秒寄存器(地址为0),并把其他的时间单元设定为默认值。如果上电复位时读出的秒的最高位CH为0,说明时钟已工作(前已对CH清0,且停电后有备用电池),此时不能重写时间单元!

  5. 时间配置
    直接把时间值写入0x00~0x06的时间寄存器。

  6. 时间读取
    直接读取0x00~0x06的时间寄存器即可。

  7. 芯片时钟输出
    控制寄存器的描述如下

    要想芯片OUT脚输出一定频率的时钟,BIT4的SQWE需要被使能,输出频率是靠RS[1:0]配置。

STM32F0项目进阶之实时时钟DS1307相关推荐

  1. 51单片机进阶案例(1)——基于MATLAB GUI的单片机串口与PC的通信实现实时时钟和双向可调时钟功能(利用DS1302时钟芯片和LCD1602液晶屏)

    目录 一.案例描述 二.实现功能 三.51单片机部分实现 3.1 实时时钟的实现 3.2 串口通信的实现 3.2.1 接收数据 3.2.2 发送数据 四.MATLAB部分实现 4.1 GUI界面 4. ...

  2. Arduino与Proteus仿真实例-DS1307实时时钟驱动仿真

    DS1307实时时钟驱动仿真 DS1307 串行实时时钟 (RTC) 是一种低功耗.全二进制编码十进制 (BCD) 时钟/日历加上 56 字节的 NV SRAM. 地址和数据通过 I2C 双向总线串行 ...

  3. Arduino I2C + DS1307实时时钟

    主要特性 DS1307是Maxim的串行.I2C实时时钟芯片.主要特性有: 工作电压:主电源电压4.5~5.5V,电池电压2.0~3.5V 功耗:电池供电.备份模式时<500nA 接口:I2C, ...

  4. DS1307实时时钟RTC读取(STM32)记录

    最开始将函数从51单片机移植过来,如何整都读取出来的数据是65,不是实时时钟数据,查了下手册,发现必须4.5V-5.5V供电才可以,没有办法,跳线解决,但SCL与SDA采用3.3V+10K电阻上拉倒没 ...

  5. ESP32连接DS3231实时时钟(RTC)的方法

    在本篇文章中,我们将学习如何将RTC实时时钟模块DS3231连接到ESP32开发板和0.96英寸I2C OLED显示屏.我们将使用DS3231实时时钟模块跟踪正确的时间和日期,在OLED显示屏上进行显 ...

  6. 关于STM32驱动DS1302实时时钟的一点思考

    关于STM32驱动DS1302实时时钟的一点思考 之前用51驱动过DS1302,没用多久就输出了正确的时间.当时以为这块芯片其实没啥,很简单.但是现在用STM32做项目,用到同样的芯片,以为这有何难, ...

  7. 外设驱动库开发笔记29:DS17887实时时钟驱动

    一些时候,在我们的嵌入式产品中需要记录时间,所以我们就需要获取时钟,当然实现的方式多种多样,有的MCU本身就有这一功能,不过精度较低.当我们的应用要求较高时就需要使用专门的实时时钟芯片,如DS1788 ...

  8. vc 串口 实时保存_Arduino提高篇22—实时时钟DS1302

    关注.星标公众号,不错过精彩内容 编辑:Tony 来源:公众号TonyCode 很多电子爱好者都热衷制作电子时钟来练手,这些时钟会使用数码管.点阵屏.LCD液晶屏.OLED屏.TFT屏等显示模块,所使 ...

  9. 爱普生EPSON实时时钟芯片-RX8900SA

    爱普生EPSON实时时钟芯片-RX8900SA 一.引脚连接 二.使用方法 寄存器配置 1.实时时间读取/设置 2.闹钟时间读取/设置 三.代码 "Rx8900sa.c文件" &q ...

最新文章

  1. linux下date -d,linux date -d的一些用法
  2. label之间展示间距_cob小间距led显示屏分类
  3. Nacos源码集群数据同步
  4. 带你自学Python系列(五):Python解决列表字符不区分大小写问题
  5. mysql killing slave_MySQL Slave 触发 oom-killer解决方法
  6. AI实战:基于AdvancedEAST的自然场景图像文本检测算法
  7. 产品经理面试指南,常见面试题及回答思路
  8. Max Script|控制器-位置约束_path
  9. 基于 Java 机器学习自学笔记 (第71-73天:BP神经网络)
  10. 登录模块 用户认证 SpringSecurity +Oauth2+Jwt
  11. 【4.29】Codeforces 刷题
  12. springboot返回404错误页面
  13. 数值分析(二) 三次样条插值法matlab程序
  14. Linux中 ps命令详解
  15. coures包下载和安装 可解决报错ImportError: No module named '_curses'
  16. uoni扫地机器人好用吗_扫地机器人好用吗?扫盲选购看这篇
  17. kafak 简单概念
  18. 51单片机12864大液晶屏proteus仿真
  19. 微博季报图解:营收18亿美元 净利1.6亿美元同比增58%
  20. 微投票统计及投票过滤器交互实现代码

热门文章

  1. 利用SOLIDWORKS仿真进行三点弯曲试验
  2. 轴承_常用硬件的种类以及选用_day16
  3. 51单片机蜂鸣器的使用
  4. 在WPF中制作正圆形公章
  5. root了有什么好,手机root好嘛
  6. Debian10中使用deb包安装WineHQ(鬼畜依赖解决)
  7. 利用Java生成二维码
  8. 【vmware安装后,没有虚拟网卡,设备管理器里面VMnet1和VMnet8有黄色感叹号。】
  9. 【TVM帮助文档学习】使用张量表达式处理算子
  10. Video4Linux下USB摄像头驱动和视频采集的实现