目录

  • 一、概述
  • 二、Pinout&Configuration
  • 三、Clock Configuration
  • 四、测试RTC
    • 4.1 获取时间
    • 4.2 制作时间戳
      • 4.2.1 生成时间戳
      • 4.2.2 验证时间戳
      • 4.2.3 时间戳时间无变化

一、概述

本文记录下RTC的使用过程,主要是后续使用,能有个参考。主要是为了提供时间戳,所以应用非常简单。用到其他功能,再补充此篇文章。
CubeMX芯片: STM32G0B1RCT6
实际焊接STM32G0B1RET6

二、Pinout&Configuration

开启RTC外设,设置初始的时间:

三、Clock Configuration

注意将RTC的时钟来源选择为外部的32.768晶振。

生成代码就可以了。

四、测试RTC

4.1 获取时间

RTC_DateTypeDef GetData;    //获取日期结构体
RTC_TimeTypeDef GetTime;    //获取时间结构体while(1)
{HAL_RTC_GetTime(&hrtc, &GetTime, RTC_FORMAT_BIN);HAL_RTC_GetDate(&hrtc, &GetData, RTC_FORMAT_BIN);main_debug("%02d/%02d/%02d\r\n",2000 + GetData.Year, GetData.Month, GetData.Date);main_debug("%02d:%02d:%02d\r\n",GetTime.Hours, GetTime.Minutes, GetTime.Seconds);nbos_msleep(3000);
}

查看打印结果:

4.2 制作时间戳

4.2.1 生成时间戳

这里的时间戳是指,格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。
首先增加时间戳函数,制作时间戳需要用到mktime库函数,需要添加的头文件和函数说明,可以参考:C 库函数 – mktime() | 菜鸟教程:
查看打印结果:

参考链接:STM32 之 时间戳的解析与生成。

4.2.2 验证时间戳

得到时间戳后,可以使用在线工具进行验证:时间戳(Unix timestamp)转换工具 - 在线工具。
将我们自己的时间戳输入进去,即可得到北京时间,以此进行验证。也可以将我们需要转换的时间输入进去,转换得到时间戳:

从转换结果看,时间戳得到时间,与北京时间相差8小时。可以想到,是因为时区导致,对时间戳函数进行调整即可:

4.2.3 时间戳时间无变化

//2022.2.11
使用过程中发现时间戳最开始能变化,很快就变成了固定值:

仿真查看,出现异常后,读取到的日期和时间确实不再改变。。。搜索了一下(STM32 HAL库读取RTC时钟一直不更新时间的问题),原来是需要先读时间,再读日期。更改后恢复正常。

在看4.1节中的测试代码,确实是先读取时间,所以之前没能发现这个问题。

STM32CubeMX使用(六)之RTC及制作时间戳相关推荐

  1. STM32CubeMX | 40 - 实时时钟RTC的使用(日历和闹钟)

    本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的 RTC 外设. 本系列教程所编写的驱动源码:https://github.com/Mculover666/HAL_Dri ...

  2. NXP RT1064学习笔记(六)— RTC

    一.介绍 Real time clock(RTC),实时时钟,它是一个可由软件配置的实时时钟模块,可以直接输出年.月.日.时.分.秒. 在RT1064中,RTC用的是Secure Non-Volati ...

  3. 物联网技术部第六次培训----网页制作入门HTML

    物联网技术部第六次软件培训----HTML 文章目录 物联网技术部第六次软件培训----HTML 什么是网页? 网页类型 网页开发中最基础的语言:HTML 网页前端html有什么基础语法? 文本标签 ...

  4. 如何使用Arduino开发板和DS1307 RTC模块制作智能提醒器

    在许多电子项目中,必须根据时间或日期运行操作.当系统关闭时,不应停止计算时间和日期.为此,使用实时时钟(RTC)模块.在本篇文章中,您将学习如何使用RTC DS1307模块和Arduino开发板制作一 ...

  5. 【STM32】HAL库 STM32CubeMX教程六----定时器中断

    前言: 今天我们来学习定时器,32的定时器有着非常丰富的功能, 输入捕获/输出比较,PWM,中断等等.是我们学习STM32最频繁使用到的外设之一,所以一定要掌握好,这节我们讲解定时器中断,本系列教程将 ...

  6. 3:STM32CubeMX配置STM32F103C8T6驱动-RTC驱动

    时钟配置 配置RTC 代码配置 Rte_Timer.h typedef struct {uint8 WeekDay; /*!< Specifies the RTC Date WeekDay (n ...

  7. stm32cubeMX学习六、Freertos配置综合实践(移植大彩串口屏程序框架)

    一节入门了stm32cubeMX SPI 0.96 OLED的配置,这节我们来学习下如何配置freertos,并驱动大彩串口屏. 本程序编写基于秉火霸道STM32F103ZET6运行环境. 一.配置时 ...

  8. Arduino UNO DS3231高精度RTC芯片 制作时钟

    DS3231 模块 是一个时钟模块,上面包含一个纽扣电池位置,可以在主机断电的情况下还可以继续计算时间,以便以后记录使用. 模块参数:   1.尺寸:38mm(长)*22mm(宽)*14mm(高)   ...

  9. python入门学习小工具制作系列各种小工具整理

    一.制作基于windows系统批量重命名文件小工具 参考博客: 使用python做一个批量重命名文件的小工具_讷言丶的博客-CSDN博客 效果展示: 临时01 代码实现: import os from ...

最新文章

  1. 转换字符串中汉字为其拼音缩写(C#)
  2. activity 启动模式_Intent#FLAG_ACTIVITY_CLEAR_TOP 真的会 clear top 吗
  3. SAP最大命中数的修改
  4. 阿里开源软件替换指南
  5. 常见的使用ICMP协议的命令
  6. php两个字符串怎么比较,php比较两个字符串的函数strcasecmp()
  7. JavaScript之jQuery
  8. 【语音去噪】基于matlab GUI傅立叶变换语音降噪混频【含Matlab源码 297期】
  9. 图片上传限制文件类型
  10. android自动计步_Android计步模块(类似微信运动)
  11. 深南电国际油价期权对赌协议详解? 毁约?
  12. Android史上最强分割线全攻略
  13. 设计模式 -- 桥接模式(Bridge)
  14. series not exists. Legend data should be same with series name or data name. 问题VUE ECHARTS
  15. 多项式学习笔记[二](全网最详细!有图有代码有解释有例题有总结!)
  16. 图像滤波边界处理方法对图像滤波的影响
  17. 每日一题之Vue数据劫持原理是什么?
  18. infortrend ESDS RAID6 数据恢复过程
  19. 关于毕业设计的总结与思考
  20. 02-Maven高级-分模块开发、依赖传递、聚合、继承(SpringBoot的部分底层原理)、多模块开发(环境切换)、Nexus私服搭建与使用

热门文章

  1. mysql索引有几种_MySQL有哪些索引类型 ?
  2. dom不刷新 vue 加数据后_详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结...
  3. fat jar包缺点_什么是fat JAR?
  4. java中设置http响应头控制浏览器禁止缓存当前文档内容
  5. 关于单细胞批次矫正那些事(一)
  6. mysql -a_a|MySQL基础命令
  7. 打印快递面单pdf_如何开通使用拼多多电子面单?
  8. python文本数据处理_python 数据处理 对txt文件进行数据处理
  9. 设计一个扩展自抽象类geometricobject_设计模式4之模板方法模式
  10. 2012.4.19总结(二)