
概述$ m) V1 K3 U9 } ^! A7 P 4 Y: h0 F) @2 a* ^+ d) ? 在这个项目中,我们将学习如何将 RTC 模块 DS3231 与 STM32(STM32F103C8 板)和 0.96 英寸 I2C OLED 显示器连接起来。然后使用 DS3231 实时时钟 (RTC) 模块来跟踪正确的时间和日期,并通过我们的核心控制器STM32F103C8 将时间和日期显示在 OLED 显示器上。 ! s+ I5 i, ]( C( I. P DS3231的替代 IC是DS1307。DS3231 RTC具有内置报警功能以及温度传感器,分辨率为 0.25,精度为 ±3°C。 / `2 q# i ^/ Z 材料清单 以下是制作此项目所需的组件。所有组件都可以从亚马逊轻松购买。购买链接也给出了。+ n; a+ y: ^3 F# W5 c/ U0 a, u ?( [6 y P ![]() . M1 J0 `2 d4 {. R( n DS3231 实时时钟模块 ! u) v8 n7 T1 \9 Y5 z DS3231是一款低成本、极其精确的 IC实时时钟 (RTC),具有集成的温度补偿晶体振荡器 (TCXO) 和晶体。该设备包含一个纽扣电池,用于在设备的主电源切断后保持准确的计时。 ; b0 s' Y/ v4 f' e0 q2 H j ![]() : N, q# w* L. P h0 { RTC 维护秒、分钟、小时、星期、日期、月份和年份信息。对于少于31 天的月份,月末的日期会自动调整,包括闰年的更正。时钟以24 小时制或12 小时制运行,具有低电平有效AM/PM指示器。提供了两个可编程的时间警报和一个可编程的方波输出。! u4 ^- U0 c/ o4 {0 s 精密的温度补偿电压基准和比较器电路监控 VCC 的状态,以检测电源故障,提供复位输出,并在必要时自动切换到备用电源。此外,低电平有效的 RST 引脚被监控为按钮输入,用于生成 P 复位。7 L% C+ j V. B 主要特点:; x7 ^" n1 N; Y; r 1 i$ @9 V5 }* [# z& H 1. 高度精确的 RTC 完全管理所有计时功能% l$ f! l$ w! a/ n0 g/ K 2. 实时时钟计数秒、分、小时、月、月、星期和年,闰年补偿有效至 21008 }$ K" j; [ G2 U# O% s! S 3. 精度±2ppm,0°C 至 +40°C) R: ^. i0 J2 Z5 V. f1 i 4. 精度 ±3.5ppm,-40°C 至 +85°C( h' b1 |) U& Y5 R# o 5. 数字温度传感器输出:±3°C 精度/ x& ~- e7 L; L% t# j 6. 老化调整寄存器 7. 低电平有效RST 输出/按钮复位去抖输入+ X' E5 E7 f6 w' E- a" d 8. 每天两次警报 p( X9 R- n, `) F 9. 可编程方波输出信号 10. 简单的串行接口可连接到大多数微控制器 11. 快速 (400kHz) I2C 接口 12. 用于连续计时的备用电池4 [3 \4 B X& j' p 13. 低功耗运行延长了备用电池的运行时间 14. 3.3V 运行 15. 工作温度范围:商业(0°C 至 +70°C)和工业(-40°C 至 +85°C)3 a- e3 V6 y. @, R+ b! O: I0 q 16. Underwriters Laboratories (UL) 认可0 ?, B! p0 n8 G 电路: 下面是连接 DS3231 模块与 STM32F103C8T6微控制器和 OLED 的电路图。连接相当简单。您也可以在面包板上组装电路。" w& B" t5 u# _ ( ]# P y* S$ t ![]() DS3231 和 OLED 显示器都是 I2C 模块。所以我们只需要 2 个引脚进行连接。因此,将串行数据 (SDA) 引脚连接到 STM32F103C8 B7 引脚并将串行时钟 (SCL) 连接到 STM32F103C8 B6 引脚。通过 STM32F103C8 的 3.3V 引脚为 OLED 和 RTC 模块提供 3.3V。(DS3231 和 OLED 模块可以使用 5V 电源)。 ![]() $ q: |6 h' w. L( ?3 s 源代码/程序(略) + Y' Z0 f" ]" O STM32 & DS3231 RTC 模块的源代码是在 Arduino IDE 上编写的。您需要在 Arduino IDE 上安装 STM32 开发板库。您可能需要导入或安装一些库。5 x9 C2 H2 [; d4 y7 v 上传代码后,RTC 模块将开始工作。时间和日期将显示在 OLED 显示屏中。不需要其他设置,也不需要任何额外的按钮或开关。7 r- I! O- M+ x% u( l ![]() ( z) p( ]" y, V* K% M; F# p' l / q6 p' Z6 `* @6 I) y7 e# z8 h 8 ^: @# F8 z9 T5 V8 z3 ? |
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南
ST 微控制器电磁兼容性 (EMC) 设计指南
适用于STM32微控制器的ΣΔ数字接口入门