基于 STM32 和 DS3231 的带 OLED 的实时时钟

概述

在这个项目中,我们将学习如何将 RTC 模块 DS3231 与 STM32(STM32F103C8 板)和 0.96 英寸 I2C OLED 显示器连接起来。然后使用 DS3231 实时时钟 (RTC) 模块来跟踪正确的时间和日期,并通过我们的核心控制器STM32F103C8 将时间和日期显示在 OLED 显示器上。

DS3231的替代 IC是DS1307DS3231 RTC具有内置报警功能以及温度传感器,分辨率为 0.25,精度为 ±3°C。

材料清单

以下是制作此项目所需的组件。所有组件都可以从亚马逊轻松购买。购买链接也给出了。

DS3231 实时时钟模块

DS3231是一款低成本、极其精确的 IC实时时钟 (RTC),具有集成的温度补偿晶体振荡器 (TCXO) 和晶体。该设备包含一个纽扣电池,用于在设备的主电源切断后保持准确的计时。

RTC 维护秒、分钟、小时、星期、日期、月份和年份信息。对于少于31 的月份,月末的日期会自动调整,包括闰年的更正。时钟以24 小时制12 小时制运行,具有低电平有效AM/PM指示器。提供了两个可编程的时间警报和一个可编程的方波输出。

精密的温度补偿电压基准和比较器电路监控 VCC 的状态,以检测电源故障,提供复位输出,并在必要时自动切换到备用电源。此外,低电平有效的 RST 引脚被监控为按钮输入,用于生成 P 复位。

主要特点:

1. 高度精确的 RTC 完全管理所有计时功能
2. 实时时钟计数秒、分、小时、月、月、星期和年,闰年补偿有效至 2100
3. 精度±2ppm,0°C 至 +40°C
4. 精度 ±3.5ppm,-40°C 至 +85°C
5. 数字温度传感器输出:±3°C 精度
6. 老化调整寄存器
7. 低电平有效RST 输出/按钮复位去抖输入
8. 每天两次警报
9. 可编程方波输出信号
10. 简单的串行接口可连接到大多数微控制器
11. 快速 (400kHz) I2C 接口
12. 用于连续计时的备用电池
13. 低功耗运行延长了备用电池的运行时间
14. 3.3V 运行
15. 工作温度范围:商业(0°C 至 +70°C)和工业(-40°C 至 +85°C)
16. Underwriters Laboratories (UL) 认可

电路:

下面是连接 DS3231 模块与 STM32F103C8T6微控制器和 OLED 的电路图。连接相当简单。您也可以在面包板上组装电路。

DS3231 和 OLED 显示器都是 I2C 模块。所以我们只需要 2 个引脚进行连接。因此,将串行数据 (SDA) 引脚连接到 STM32F103C8 B7 引脚并将串行时钟 (SCL) 连接到 STM32F103C8 B6 引脚。通过 STM32F103C8 的 3.3V 引脚为 OLED 和 RTC 模块提供 3.3V。(DS3231 和 OLED 模块可以使用 5V 电源)。

源代码/程序(略)

STM32 & DS3231 RTC 模块的源代码是在 Arduino IDE 上编写的。您需要在 Arduino IDE 上安装 STM32 开发板库。您可能需要导入或安装一些库。

上传代码后,RTC 模块将开始工作。时间和日期将显示在 OLED 显示屏中。不需要其他设置,也不需要任何额外的按钮或开关。

猜你喜欢

转载自blog.csdn.net/m0_67034740/article/details/124223181