STM32L4实时时钟模块(RTC)介绍
STM32系列MCU硬件实时时钟(RTC)应用笔记说明书

2017年6月Doc ID 018624 Rev 1 [English Rev 5]1/45AN3371应用笔记在 STM32 F0、F2、F3、F4 和 L1 系列MCU 中使用硬件实时时钟(RTC )前言实时时钟 (RTC) 是记录当前时间的计算机时钟。
RTC 不仅应用于个人计算机、服务器和嵌入式系统,几乎所有需要准确计时的电子设备也都会使用。
支持 RTC 的微控制器可用于精密计时器、闹钟、手表、小型电子记事薄以及其它多种设备。
本应用笔记介绍超低功耗中等容量、超低功耗大容量、F0、F2和 F4 系列器件微控制器中嵌入式实时时钟 (RTC) 控制器的特性,以及将 RTC 用于日历、闹钟、定时唤醒单元、入侵检测、时间戳和校准应用时所需的配置步骤。
本应用笔记提供了含有配置信息的示例,有助于您快速准确地针对日历、闹钟、定时唤醒单元、入侵检测、时间戳和校准应用配置 RTC 。
注:所有示例和说明均基于 STM32L1xx 、STM32F0xx 、STM32F2xx 、STM32F4xx 和STM32F3xx 固件库,以及 STM32L1xx (RM0038)、STM32F0xx (RM0091)、STM32F2xx (RM0033)、STM32F4xx (RM0090)、STM32F37x (RM0313) 和 STM32F30x(RM0316) 的参考手册。
本文提到的STM32 指超低功耗中等容量、超低功耗大容量、F0、F2 和 F4 系列器件。
超低功耗中等 (ULPM) 容量器件包括 STM32L151xx 和 STM32L152xx 微控制器,Flash 容量在 64 KB 到 128 KB 之间。
超低功耗大 (ULPH) 容量器件包括 STM32L151xx 、STM32L152xx 和 STM32L162xx 微控制器,Flash 容量为 384 KB 。
F2 系列器件包括 STM32F205xx 、STM32F207xx 、STM32F215xx 和 STM32F217xx 微控制器。
STM32-RTC实时时钟-毫秒计时实现

STM32-RTC实时时钟-毫秒计时实现OS:Windows 64Development kit:MDK5.14IDE:UV4MCU:STM32F103C8T61、RTC时钟简介 STM32 的实时时钟(RTC)是⼀个独⽴的定时器,在相应软件配置下,可提供时钟⽇历的功能。
详细资料请参考ALIENTEK的官⽅⽂档——《STM32F1开发指南(精英版-库函数版)》,以下为博主摘录要点:RTC 模块和时钟配置系统(RCC_BDCR 寄存器)在后备区域,系统复位后,会⾃动禁⽌访问后备寄存器和 RTC ,所以在要设置时间之前,先要取消备份区域(BKP)的写保护RTC 内核完全独⽴于 RTC APB1 接⼝,⽽软件是通过 APB1 接⼝访问 RTC 的预分频值、计数器值和闹钟值,因此需要等待时钟同步,寄存器同步标志位(RSF)会硬件置1RTC相关寄存器包括:控制寄存器(CRH、CRL)、预分频装载寄存器(PRLH、PRLL)、预分频器余数寄存器(DIVH、DIVL)、计数寄存器(CNTH、CNTL)、闹钟寄存器(ALRH、ALRL)STM32备份寄存器,存RTC校验值和⼀些重要参数,最⼤字节84,可由VBAT供电计数器时钟频率:RTCCLK频率/(预分频装载寄存器值+1)2、软硬件设计 由于RTC是STM32芯⽚⾃带的时钟资源,所以⾃主开发的时候只需要在设计时加上晶振电路和纽扣电池即可。
编程时在HARDWARE⽂件夹新建 rtc.c、rtc.h ⽂件。
3、时钟配置与函数编写 为了使⽤RTC时钟,需要进⾏配置和时间获取,基本上按照例程来写就可以了。
为避免零散,我将附上完整代码。
函数说明如下:rtc.c中需要编写的函数列表RTC_Init(void)配置时钟RTC_NVIC_Config(void)中断分组RTC_IRQHandler(void)秒中断处理RTC_Set(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8 sec)设置时间RTC_Alarm_Set(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8sec)闹钟设置RTC_Get(void)获取时钟RTC_Get_Week(u16 year,u8 month,u8 day)星期计算Is_Leap_Year(u16 year)闰年判断 事实上,以上函数并不都要,闹钟没有⽤到的话就不要,秒中断也可以不作处理,看项⽬需求。
stm32 rtc实时时钟

stm32 rtc实时时钟STM32 RTC实时时钟一、介绍STM32是意法半导体公司(STMicroelectronics)推出的一系列32位ARM Cortex-M微控制器。
其中,RTC(Real-Time Clock)是STM32微控制器中的一个重要组件,用于实时时钟和日历功能。
本文将详细介绍STM32 RTC的实时时钟功能及其应用。
二、RTC概述RTC模块是一种独立的硬件模块,可以在微控制器断电时继续运行。
它提供了一个与时间和日期相关的计数器,通过时钟信号源来驱动计数器,从而实现实时时钟的功能。
RTC模块通常由一个独立的低功耗振荡器来提供时钟源。
STM32微控制器中的RTC模块支持多种工作模式,如年历模式、单位数字模式和二进制模式等。
三、RTC的主要功能1. 实时时钟:RTC模块可以提供精确的实时时钟,可以记录时间、日期和星期等信息。
2. 闹钟功能:RTC可以设置多个闹钟时间,并在闹钟时间到达时触发中断或其他操作。
3. 倒计时功能:RTC模块可以进行倒计时操作,并在倒计时结束时触发中断。
4. 调度功能:RTC可以设置预定的时间点,并在该时间点触发中断。
5. 报警功能:RTC可以设置报警功能,当发生特定事件时触发中断或其他操作。
四、配置RTC模块在使用STM32微控制器的RTC功能之前,需要进行一些配置。
首先,需要选择合适的时钟源。
通常,RTC模块使用低功耗振荡器作为时钟源。
其次,需要配置RTC的预分频器和计数器,以实现所需的时间精度。
还需配置中断和/或事件触发条件,以便在特定事件发生时触发中断或其他操作。
五、RTC的中断与事件RTC模块可以生成多个中断和事件,以满足应用的需求。
常见的中断和事件有:1. 秒中断:每当计数器的秒字段更新时触发中断。
2. 分钟中断:每当计数器的分钟字段更新时触发中断。
3. 小时中断:每当计数器的小时字段更新时触发中断。
4. 日期中断:每当计数器的日期字段更新时触发中断。
STM32_RTC简介及程序

stm32——RTC实时时钟一、关于时间2038年问题在计算机应用上,2038年问题可能会导致某些软件在2038年无法正常工作。
所有使用UNIX时间表示时间的程序都将将受其影响,因为它们以自1970年1月1日经过的秒数(忽略闰秒)来表示时间。
这种时间表示法在类Unix(Unix-like)操作系统上是一个标准,并会影响以其C编程语言开发给其他大部份操作系统使用的软件。
在大部份的32位操作系统上,此“time_t”数据模式使用一个有正负号的32位元整数(signedint32)存储计算的秒数。
也就是说最大可以计数的秒数为 2^31次方可以算得:2^31/3600/24/365 ≈ 68年所以依照此“time_t”标准,在此格式能被表示的最后时间是2038年1月19日03:14:07,星期二(UTC)。
超过此一瞬间,时间将会被掩盖(wrap around)且在内部被表示为一个负数,并造成程序无法工作,因为它们无法将此时间识别为2038年,而可能会依个别实作而跳回1970年或1901年。
对于PC机来说,时间开始于1980年1月1日,并以无正负符号的32位整数的形式按秒递增,这与UNIX时间非常类似。
可以算得:2^32/3600/24/365 ≈ 136年到2116年,这个整数将溢出。
Windows NT使用64位整数来计时。
但是,它使用100纳秒作为增量单位,且时间开始于1601年1月1日,所以NT将遇到2184年问题。
苹果公司声明,Mac在29,940年之前不会出现时间问题!二、RTC使用说明"RTC"是Real Time Clock 的简称,意为实时时钟。
stm32提供了一个秒中断源和一个闹钟中断源,修改计数器的值可以重新设置系统当前的时间和日期。
RTC模块之所以具有实时时钟功能,是因为它内部维持了一个独立的定时器,通过配置,可以让它准确地每秒钟中断一次。
但实际上,RTC就只是一个定时器而已,掉电之后所有信息都会丢失,因此我们需要找一个地方来存储这些信息,于是就找到了备份寄存器。
STM32F4系列RTC模块中文翻译..

22 实时时钟(RTC)22.1 简介实时时钟是一个独立的BCD定时/计数器。
可以提供一个时钟日历、两个可编程的闹钟中断以及一个有中断能力的周期性可编程的唤醒标志,RTC同时包括一个自动唤醒单元来管理低功耗模式。
RTC有两个32位寄存器,其中包括以BCD码表示的秒、分、时(12或24小时制)、日(Day of week)、日期(day of mouth)以及年。
亚秒(sub-seconds)值也可以用BCD码表示。
自动执行28、29(闰年)、30、31天的补偿以及夏令时的补偿。
附加的32位寄存器包含可编程的闹铃亚秒、秒、分、小时、日(day of week)可日期(day of mouth).数字校准器可以补偿任何晶振带来的偏差。
上电复位后所有的RTC寄存器都被保护,以防止可能的误写访问。
不管设备处于什么状态(运行模式(Run mode),低功耗模式(Low power mode)或者正在复位(under reset)),只要供电在工作范围内,RTC就不会停止。
22.2 RTC的主要特性RTC单元的主要特性如下:·拥有亚秒、秒、分、小时、星期、日期,月和年的日历。
·软件编程的夏令补偿。
·两个有中断功能的可编程闹钟。
闹钟可以通过任何日历的组合来触发。
·自动唤醒单元产生一个周期标志来触发一个自动唤醒中断。
·参考时钟选择:可以选择一个更精确的源秒时候来确保日历的精确度。
·使用亚秒切换特性通过一个外部时钟来达到精确的同步。
·可屏蔽中断/事件:- 闹钟A- 闹钟B- 唤醒中断- 时间戳- 侵入检测·数字校验电路(周期计数校正)- 5 ppm的精度- 0.95ppm的精度,获得一个几秒种的校准窗口·可保存事件的时间戳功能(一个事件)·侵入事件- 两个可配置滤波器和侵入上拉的侵入事件。
·20个后备寄存器(80个字节).当一个选择的侵入检测事件发生时后备寄存器被复位。
STM32L4如何用闹钟唤醒待机模式

STM32L4如何用闹钟唤醒待机模式STM32L4微控制器是一款低功耗型的微控制器,具有多种低功耗模式,包括待机模式。
待机模式是一种非常低功耗的模式,减少了系统的功耗和电池的消耗。
在待机模式下,微控制器处于最低功耗状态,只有少数外设处于工作状态。
为了实现在待机模式下使用闹钟唤醒,需要使用RTC(实时时钟)和唤醒时钟。
以下是在STM32L4微控制器上使用闹钟唤醒待机模式的步骤:第一步:配置RTCRTC是一个计时器和日历,可以配置为以低功耗模式运行,以实现在待机模式下仍然运行。
需要配置RTC的时钟源和时钟预分频器,以及闹钟的时间和日期。
可以使用STM32CubeMX工具来生成初始化代码,并进行配置。
第二步:配置唤醒时钟唤醒时钟是唤醒待机模式的时钟源,可以选择RTC时钟或者外部时钟。
需要配置唤醒时钟源的时钟频率和预分频器。
第三步:配置RTC闹钟唤醒RTC闹钟唤醒是通过比较RTC计数器的值和闹钟的时间来实现的。
需要设置闹钟的时间和日期,并使能RTC的闹钟中断。
可以使用RTC中断处理函数来处理闹钟中断。
第四步:配置待机模式需要将微控制器设置为待机模式,并选择所需的待机模式。
可以选择从WFI或WFE指令进入待机模式,然后在唤醒时钟中断发生时唤醒。
第五步:进入待机模式通过设置待机模式位,可以将微控制器设置为待机模式。
可以在主循环中或者其他适当的位置调用待机模式函数,以便在满足一定条件时进入待机模式。
例如,在任何其他可能导致系统空闲的地方,可以插入检查唤醒条件的代码,并在满足条件时调用待机模式函数。
第六步:处理唤醒中断当RTC闹钟的时间和日期与RTC计数器的值匹配时,将会发生唤醒中断,并从待机模式中唤醒。
可以在RTC中断处理函数中处理唤醒中断,例如重新配置RTC闹钟或恢复其他外设。
通过以上步骤,就可以实现在待机模式下使用RTC闹钟唤醒STM32L4微控制器。
这样可以大大降低系统的功耗,并在指定的时间唤醒系统进行相应的操作。
STM32单片机RTC时钟的使用方法及步骤

STM32单片机RTC时钟的使用方法及步骤以下是使用STM32单片机的RTC时钟的步骤:1.初始化RTC模块:首先,需要在RCC寄存器中使能RTC和LSE(Low-Speed External)晶振模块。
然后,配置RTC的时钟源和预分频器,选择合适的时钟频率。
2.配置RTC时间和日期:通过设置RTC的寄存器来配置当前时间和日期。
需要设置秒、分钟、小时、星期、日期、月份和年份,确保其具有正确的值。
3.启动RTC时钟:设置RTC的控制寄存器,使其开始工作。
可以选择启用或禁用闹钟功能,设置闹钟的时间和日期。
4.读取RTC数据:可以随时读取RTC的时间和日期数据。
读取数据后,可以进行各种计算和处理,如计算两个时间之间的差异、比较时间等。
5.处理RTC中断:可以设置RTC中断来触发一些操作,如闹钟触发时执行一些任务。
需要配置NVIC(Nested Vector Interrupt Controller)中断向量表,使能相应的中断。
6.备份和恢复RTC数据:RTC模块提供了备份寄存器,可以用来存储额外的信息。
可以使用一些特殊的寄存器,如BKP (Backup)寄存器或CPU的系统寄存器来备份和恢复数据。
7.断电维持能力:RTC模块的一个关键特性是其断电维持能力。
即使在断电情况下,RTC模块中的数据仍然能够保持。
可以通过电池供电电路来提供必要的电力。
8.节能模式:可以利用RTC模块的节能模式来降低功耗。
可以选择性地关闭RTC模块的不需要的功能,以减少功耗。
需要注意的是,具体的步骤可能会因芯片型号和开发工具的不同而有所差异。
因此,在使用STM32单片机的RTC时钟之前,需查阅相关的技术文档和参考手册,以了解具体操作步骤和寄存器配置。
以上是使用STM32单片机的RTC时钟的基本步骤。
在实际应用中,可以根据具体需求对RTC进行更多的配置和使用。
基于STM32 RTC实时时钟

1 课程设计内容本文将利用ALIENTEK 2.8寸TFTLCD模块来显示日期时间,实现一个简单的时钟。
2 STM32芯片简介2006年ARM公司推出了基于ARMv7架构的Cortex系列的标准体系结构,以满足各种技术的不同性能要求,包含A、R、M三个分工明确的系列[1]。
其中,A系列面向复杂的尖端应用程序,用于运行开放式的复杂操作系统;R系列适合实时系统;M系列则专门针对低成本的微控制领域。
Cortex-M3是首款基于ARMv7-M体系结构的32位标准处理器,具有低功耗、少门数、短中断延迟、低调试成本等众多优点。
它是专门为在微控制系统、汽车车身系统、工业控制系统和无线网络等对功耗和成本敏感的嵌入式应用领域实现高系统性能而设计的,它大大简化了编程的复杂性,集高性能、低功耗、低成本于一体[2]。
半导体制造厂商意法半导体ST公司是ARM公司Cortex-M3内核开发项目一个主要合作方,2007年6月11日ST公司率先推出了基于Cortex-M3内核的STM32系列MCU。
本章将简要介绍STM32系列处理器的分类、内部结构及特点,并对本设计中重点应用的通用定时器做进一步分析。
2.1 STM32 RTC时钟简介STM32 的实时时钟(RTC)是一个独立的定时器。
STM32 的 RTC 模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。
修改计数器的值可以重新设置系统当前的时间和日期。
RTC 模块和时钟配置系统(RCC_BDCR 寄存器)是在后备区域,即在系统复位或从待机模式唤醒后 RTC 的设置和时间维持不变。
但是在系统复位后,会自动禁止访问后备寄存器和 RTC,以防止对后备区域(BKP)的意外写操作。
所以在要设置时间之前,先要取消备份区域(BKP)写保护。
RTC 的简化框图,如图 20.1.1 所示:图 20.1.1 RTC 框图RTC 由两个主要部分组成(参见图 20.1.1),第一部分(APB1 接口)用来和 APB1 总线相连。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
64
• Alternate function inputs:
• RTC_TAMP1: tamper1 event detection. • RTC_TAMP2: tamper2 event detection. • RTC_TAMP3: tamper3 event detection. • RTC_TS: timestamp event detection. • RTC_REFIN: reference clock input.
Presentation Title 02/07/2015
RTC Features (2/2)
• Alternate function outputs:
• RTC_CALIB: 512 Hz or 1Hz clock output (with an LSE frequency of 32.768 kHz). It is routed to the device RTC_OUT output. • RTC_ALARM: Alarm A, B flag output. It is routed to the device RTC_OUT output.
No VBAT
YES
3 pins/ 3 events
Edge or Level Detection with Configurable filtering External interrupt and NO trigger with filtering 32-bit Backup registers 20 32
• The RTC remains active what ever the low power mode
• Sleep, Stop 1 & 2, Standby, Shutdown
70
• When enabled, 5 events can exit the device from low power modes:
1. Write ‘0xCA’ into the RTC_WPR register 2. Write ‘0x53’ into the RTC_WPR register * Except for the clear of Alarm and Wakeup timer interrupt flags Writing a wrong key reactivates the write protection.
• Alarm A • Alarm B • Wakeup • Tamper 1/ 2 / 3 • TimeStamp
• The RTC remains active in VBAT mode (VDD off) when clocked by LSE • The RTC remains active under Reset except at Backup Domain Reset:
• When BDRST is set in the RCC • When both VDD and VBAT are powered down
70
RTC Alternate function configuration (1/2)
RTC pin (PC13) :
Pin configuration and function Alarm out output OD Alarm out output PP Calibration out output PP TAMPER1 input floating TIMESTAMP and TAMPER input floating TIMESTAMP input floating RTC_ALARM enabled (OSEL[1:0])
YES YES
YES Resolution down to RTCCLK YES
2 w/ subseconds Calib window : 8s/16s/32s Calibration step: 3.81ppm/1.91ppm/0.95 ppm Range [-480ppm +480ppm]
RTC overview across families (2/2)
Alarm B
TimeStamp Flag
RTCSEL [1:0] HSE / 32 LSE LSI
Smooth Calibration
=
ssr, ss, mm, HH/date Alarm A ssr, ss, mm, HH/date
Calendar
Alarm B Flag
RTCCLK
=
Alarm A Flag
Calendar
RTC_ALARM
ssr (binary format)
Asynchronous 7bit Prescaler Synchronous 15bit Prescaler
PREDIV_A [6:0]
PREDIV_S [14:0] 1 Hz
Day/date/month/year HH:mm:ss (12/24 format)
63
• Digital calibration circuit (periodic counter correction) to achieve 0.95 ppm accuracy • Time-stamp function for event saving with sub second precision (1 event) • 32 backup registers (128 bytes) which are reset when an tamper detection event occurs.
• The RTC clock source could be any of the following three:
• LSE oscillator clock : available in all LP modes + VBAT. • LSI oscillator clock : available in all LP modes except Shutdown. • HSE divided by 32 in clock controller.
01 or 10 or 11 1 01 or 10 or 11 Don’t care 1 00 00 00 01 or 10 or 11 00 00 01 or 10 or 11 00 00 01 or 10 or 11 00 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 or 10 or 11
Presentation Title 02/07/2015
RTC overview across families (1/2)
65 65
STM32F4x
STM32L1x
STM32L4x
RTC in VBAT Calendar in BCD Calendar Sub seconds access Calendar synchronization on the fly Alarm on calendar Calendar Calibration
STM32F4x Synchronization on mains Periodic wakeup Timestamp STM32L1x STM32L4x YES YES YES Sec, Min, Hour, Date, Sub seconds NO 3 pins/ 2 events
66 66
Timestamp on VBAT switch Tamper
RTC_CALIB 512 Hz COSEL
Wake-Up
16bit autoreload Timer
Periodic wake up Flag
WUCKSEL [2:0]
RTC registers write protection
• By default and after reset, the RTC registers are write protected to avoid possible parasitic write accesses.
RTC Clock Sources
• The RTC has two clock sources:
• RTCCLK used for RTC timer/counter, can be either the HSE/32, LSE or LSI clocks. • PCLK1 used for RTC register read/write access.
• DBP bit must be set in PWR_CR to enable RTC write access • A Key must be written in RTC_WPR register.
68 68
• To unlock write protection on all RTC registers
STM32L4
Real-Time Clock (RTC)
RTC Features (1/2)
• Ultra-low power battery supply current. • Calendar with Sub seconds, seconds, minutes, hours, week day, date, month, and year. • Daylight saving compensation programmable by software • Two programmable alarms with interrupt function. The alarms can be triggered by any combination of the calendar fields. • A periodic flag triggering an automatic wakeup interrupt. This flag is issued by a 16-bit auto-reload timer with programmable resolution. This timer is also called ‘wakeup timer’. • A second clock source (50 or 60Hz) can be used to update the calendar. • Maskable interrupts/events: • Alarm A, Alarm B, Wakeup interrupt, Time-stamp, Tamper detection