0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

不建议使用STM32F1的RTC实现日历功能

黄工的嵌入式技术圈 ? 来源:黄工的嵌入式技术圈 ? 作者:黄工的嵌入式技术 ? 2020-02-28 17:20 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

有读者问:如何在STM32F1上实现日历功能?

一、关于RTC

RTC:Real TimeClock,实时时钟,记录当前时间的计算机时钟

RTC 不仅应用于个人计算机、服务器和嵌入式系统,几乎所有需要准确计时的电子设备也都会使用。

支持 RTC 的微控制器可用于精密计时器、闹钟、手表、小型电子记事薄以及其它多种设备。

在实际项目中,运用时间戳的地方很多,比如:存储数据、日志消息、系统故障等。

二、STM32的RTC

在所有STM32处理器中,都集成了一个RTC模块,是一个独立的 BCD 定时器 / 计数器。

但是,在STM32F1系列中,RTC模块的功能相对比较简单(也许是最前推出的原因)。其中,一个重要的功能,日历功能在F1系列中是不具备的。

F1的RTC可以实现1秒累计计数,很早之前,我自己通过软件实现日历功能,其中包含闰年、月份28、29天的处理。我之前进行过多次验证,但也不敢保证完全没问题。

RTC功能概述:

处理STM32F1,其它系列的RTC基本具有很多高级功能,比如:日历、闹钟、定时唤醒单元、数字校准、同步、时间戳和高级入侵检测等。

三、日历功能

RTC最重要,最常用的功能就是日历功能,但F1系列中的RTC模块不具备。

打开F1手册,你在RTC框图,你会发现没有日历(Calendar)相关的寄存器。而且其他系列就有:

除F1系列,可轻松配置和显示下列日历数据字段:

·含有下列字段的日历:

– 亚秒 (不可编程

– 秒

– 分

– 时 ( 12 小时或 24 小时格式)

– 星期

– 日

– 月

– 年

·二进码十进数 ( BCD)格式的日历

·自动管理天数为 28、 29 (闰年)、 30 和 31 的月份

·夏令时调整可用软件编程

四、闹钟功能

相对F1系列,其他系列的闹钟功能自然也更高级了。STM32闹钟基于日历基础之上,只需简单简单编程即可实现闹钟功能。

闹钟单元均具有以下功能:

·支持对闹钟自由编程:亚秒 (稍后讨论)、秒、分钟、小时和日期字段可以单独选择或屏蔽,以实现多种闹钟组合。

·能够在发生闹钟事件时使器件退出低功耗模式。

·可将闹钟事件发送到极性可配置的特定输出引脚。

·具有专用的闹钟标志和中断。

五、其他

RTC功能还有很多重要功能,这里只简单说了常用、重要的日历和闹钟。更多RTC知识可参看MCU对应的参考手册。

最后,标题中“不建议用STM32F1的RTC实现日历功能”,就是因为F1不具备RTC功能,软件实现复杂,同时也不具备一些高级功能。

额外:RTC属于一个计时器,也可实现定时器的一些基本功能。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5455

    浏览量

    125662
  • STM32
    +关注

    关注

    2298

    文章

    11041

    浏览量

    367038
  • RTC
    RTC
    +关注

    关注

    2

    文章

    625

    浏览量

    69356
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AT32的ERTC与RTC的区别

    日历逻辑,直接给出年、月、日、时、分、秒,大大简化了软件操作和降低了出错概率 。 中断与闹钟功能 RTC :较为基础,通常只提供一个中断请求,用于闹钟功能 。 ERTC :提供多个
    发表于 07-11 10:48

    零知开源——STM32F4实现ILI9486显示屏UI界面系列教程(二):日历功能实现

    本教程将指导您在STM32F4平台上实现一个功能完善的日历应用,通过ILI9486电阻触摸屏提供直观的日期查看和交互体验。该日历应用是智能
    发表于 06-25 17:51

    零知开源——STM32F4实现ILI9486显示屏UI界面系列教程(二):日历功能实现

    本教程详细介绍了基于STM32F4和ILI9486触摸屏的日历应用开发,涵盖硬件连接、软件实现与零知IDE配置。核心功能包括月份视图展示、滑动切换和日期标记,通过LVGL库
    的头像 发表于 06-25 17:34 ?277次阅读
    零知开源——<b class='flag-5'>STM32F</b>4<b class='flag-5'>实现</b>ILI9486显示屏UI界面系列教程(二):<b class='flag-5'>日历</b><b class='flag-5'>功能</b><b class='flag-5'>实现</b>

    小马哥STM32F1主控720空心杯四轴飞行器资料(包含源代码和相关教程)

    小马哥STM32F1主控720空心杯四轴飞行器资料(包含源代码和相关教程),推荐下载!
    发表于 05-29 21:51

    小马哥STM32F1主控720空心杯四轴飞行器资料(包含源代码和相关教程)

    小马哥STM32F1主控720空心杯四轴飞行器资料(包含源代码和相关教程) 项目实例下载! 纯分享帖,需要者可点击附件免费获取完整资料~~~【免责声明】本文系网络转载,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,删除内容!
    发表于 05-23 21:07

    STM32F1能使用11.059Mhz外部晶振吗?怎么设置系统频率和PLL?

    请问STM32F1能使用11.059Mhz外部晶振吗?如果可以,怎么设置系统频率和PLL?
    发表于 03-14 06:31

    Arduino中可以使用STM32F1或者STM32F4系列芯片的内置看门狗吗?

    Arduino中可以使用STM32F1或者STM32F4系列芯片的内置看门狗吗
    发表于 03-13 07:32

    使用Keil开发环境和STM32F103RCT6实现RTC功能时,总提示\"RTC_InitTypeDef\" is undefined,为什么?

    使用Keil开发环境和STM32F103RCT6,实现RTC功能时,总提示"RTC_InitTypeDef" is un
    发表于 03-12 07:38

    【瑞萨RA2L1入门学习】03. RTC 时钟日历&amp;闹钟&amp;周期性中断

    非常稳定的RTC模块来提供时间基准。有这些硬件的提供,实现闹钟以及周期性中断将会非常轻松。 以下是通过串口打印的日历、闹钟并且是周期性的打印。
    发表于 03-07 16:45

    如何利用RTC外设实现万年历功能

    本小节讲解的是如何利用RTC外设实现万年历功能,本实验工程与RTC底层驱动相关的文件为bsp_rtc.c/h,在底层驱动之上我们添加了bsp
    的头像 发表于 02-18 16:56 ?1276次阅读

    【瑞萨RA2L1入门学习】06、低功耗桌面日历摆件的实现

    1 前言 之前几次实验都是分开验证模块功能的,这次就把它们整合到一起,目的是把低功耗桌面日历摆件项目做出来。 2 软件部分 2.1源文件整合 这次实验是对代码做整合的,所以要把
    发表于 01-30 13:18

    【瑞萨RA2L1入门学习】03、RTC日历及串口设置时间

    1. 前言 本次实验内容是调用RTC实时时钟,实现日历、串口设定时间的功能。 2. 硬件部分 RTC
    发表于 01-26 14:37

    STM32F1开发指南

    这本书详细讲述了STM32HAL库开发的配置流程,非常详细
    发表于 01-21 15:33 ?3次下载

    通过stm32F1单片机的PWM功能产生两个时钟,从Dout读取到的数据位都是0,这个是怎么回事呢?

    我通过stm32F1单片机的PWM功能产生两个时钟:第一个是clk时钟,频率12MHz;第二个是CONV,我用PWM输出1000ms的积分时间方波,占空比为50%,那么DDC112工作在continue模式,根据读取数据的时序图,我从Dout读取到的数据位都是0,这个是
    发表于 12-02 06:30

    使用STM32F1输入捕获功能时,TIM6和TIM7无法实现输入捕获是哪里的问题?

    使用STM32F1输入捕获功能时,TIM6和TIM7无法实现输入捕获,是芯片问题吗?在配置STM32F1的TIM6和TIM7定时器时,发现无法进行输入捕获,是否因为芯片
    发表于 09-27 09:11