STM32使用内部时钟配置RTC,设置并读取时间、闹钟和周期唤醒

这篇具有很好参考价值的文章主要介绍了STM32使用内部时钟配置RTC,设置并读取时间、闹钟和周期唤醒。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

说明:由于开发板上没有32.768kHz的时钟,所以选择内部32kHz的时钟。

基本配置

1.首先使能RTC

stm32g0 rtc闹钟,stm32,单片机,rtc

2.配置时钟(内部时钟32kHz)

stm32g0 rtc闹钟,stm32,单片机,rtc

3. General选项组里配置小时模式,有24小时制和12小时制可选,后面的127和255组合成分频系数,127实际对应128,255实际对应256,所以128×256=32768,正好实现输入32.768KHz时钟分频到1Hz。

stm32g0 rtc闹钟,stm32,单片机,rtc

由于我们选择内部时钟,所以设置为79和399,80x400=32000,实现输入32KHz时钟分频到1Hz。

stm32g0 rtc闹钟,stm32,单片机,rtc

4. 初始时间及日期配置:

DataFormat选项分别为BIN(时间为10进制)BCD(时间为16进制)

Hours为初始时间的小时

Minutes为初始时间的分钟

Seconds为初始时间的秒数

stm32g0 rtc闹钟,stm32,单片机,rtc

设置闹钟

1.闹钟使用,闹钟A设置为xx:xx:30触发,即每分钟的30秒触发。

stm32g0 rtc闹钟,stm32,单片机,rtc

2.使能闹钟中断

stm32g0 rtc闹钟,stm32,单片机,rtc

3.调用闹钟回调函数,每分钟30秒的时候触发一次

 void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)

{

       HAL_UART_Transmit(&huart6,(uint8_t *)"Alarm\r\n",7, 100);

}

stm32g0 rtc闹钟,stm32,单片机,rtc

周期唤醒

1.配置,Wake Up Clock:周期唤醒的时钟源;Wake Up Counter:唤醒计数器的重载值,如果设置为0,则每个时钟周期中断一次。如选择周期唤醒时钟源为1Hz信号时,若设置次值为0,则每一秒发生一次唤醒中断。

stm32g0 rtc闹钟,stm32,单片机,rtc

2.开启周期唤醒中断

3.重写回调函数,并获取时间日期(需同时获取,否则时间会锁死)

void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc)

{

       RTC_TimeTypeDef        sTime;
       RTC_DateTypeDef        sDate;
       HAL_RTC_GetTime(hrtc, &sTime, RTC_FORMAT_BIN);        
    sprintf(Uart6RxBuffer,"Time:%02d:%02d:%02d\t",sTime.Hours,sTime.Minutes,sTime.Seconds);
       HAL_UART_Transmit(&huart6,(uint8_t *)Uart6RxBuffer,strlen(Uart6RxBuffer), 100);
       HAL_RTC_GetDate(hrtc, &sDate, RTC_FORMAT_BIN);
     sprintf(Uart6RxBuffer, "Date:20%02d-%02d-%02d\r\n",sDate.Year,sDate.Month,sDate.Date);
       HAL_UART_Transmit(&huart6,(uint8_t *)Uart6RxBuffer,strlen(Uart6RxBuffer), 100);

}

stm32g0 rtc闹钟,stm32,单片机,rtc文章来源地址https://www.toymoban.com/news/detail-854853.html

到了这里,关于STM32使用内部时钟配置RTC,设置并读取时间、闹钟和周期唤醒的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32中的RTC实时时钟和配套闹钟设置

    主要初始化函数,以及设置闹钟函数,闹钟中断函数 RTC.c RTC.h main.c

    2024年04月23日
    浏览(38)
  • STM32CubeMX教程11 RTC 实时时钟 - 入侵检测和时间戳

    目录 1、准备材料 2、实验目标 3、实验流程 3.0、前提知识 3.1、CubeMX相关配置 3.1.0、工程基本配置 3.1.1、时钟树配置 3.1.2、外设参数配置 3.1.3、外设中断配置 3.2、生成代码 3.2.0、配置Project Manager页面 3.2.1、外设初始化调用流程 3.2.2、外设中断调用流程 3.2.3、添加其他必要代码

    2024年02月03日
    浏览(39)
  • STM32的RTC时钟配置

    STM32的时钟可以使用内部RTC产生时钟日历,也可以使用外部芯片产生更为精确的时钟,如DS3231时钟芯片。本文介绍使用内部RTC产生时钟。 RTC的时钟源有以下三种 :                                                                                                 

    2024年02月10日
    浏览(35)
  • STM32 HAL库 RTC实时时钟打印时间日期 掉电不清零 CubeMX

    启用HSE和HSI 启用RTC和Calendar功能,选择内部唤醒 设置参数 Hour Format:小时格式(12小时或24小时制) Asynchronous Predivider value:异步分频系数 Synchronous Predivider value:同步分频系数 异步分频系数和同步分频系数共同决定RTC的频率。当使用32.768KHz的LSE时,RTC分频后的时钟频率为

    2024年04月27日
    浏览(37)
  • STM32系统时钟的配置方法——内部高速时钟HSI作为系统时钟源

    本文将配置为STM32F103C8T6使用内部高速时钟(HSI)和相位锁定环(PLL),以使系统时钟(SYSCLK)达到48MHz为例进行讲述。 STM32的时钟系统非常灵活,可以根据应用需求进行精细的配置。它包括多种时钟源,如内部高速时钟(HSI)、外部高速时钟(HSE)、内部低速时钟(LSI)、外

    2024年04月24日
    浏览(33)
  • STM32-RTC实时时钟

    目录 RTC实时时钟 功能框图 UNIX时间戳 初始化结构体 RTC时间结构体 RTC日期结构体 RTC闹钟结构体 进入和退出配置函数 实验环节1:显示日历 常规配置 RTC配置 测试环节 实验现象 实验环节2:闹钟 常规配置 RTC配置 测试环节 实验现象 STM32的RTC外设,实质上是一个 掉电后还继续运

    2024年02月06日
    浏览(42)
  • 【STM32】RTC(实时时钟)

    本质:计数器 RTC中断是外部中断(EXTI) 当VDD掉电的时候,Vbat可以通过电源---实时计时 STM32的RTC外设(Real Time Clock),实质是一个   掉电   后还继续运行的定时器。从定时器的角度来说,相对于通用定时器TIM外设,它十分简单, 只有很纯粹的计时和触发中断的功能 ;但从

    2024年02月03日
    浏览(45)
  • STM32--RTC实时时钟

    Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒 。 时间戳存储在一个秒计数器中,秒计数器为32位/64位的整型变量。 世界上所有时区的秒计数器相同,不同时区通过添加偏移来得到当地时间。 GMT : GMT(Greenwich Mean Time), 格林威治平时(也称格林

    2024年02月10日
    浏览(43)
  • STM32——RTC实时时钟

    Unix 时间戳(Unix Timestamp)定义为从UTC/GMT的1970年1月1日0时0分0秒开始所经过的秒数,不考虑闰秒 时间戳存储在一个秒计数器中,秒计数器为32位/64位的整型变量 世界上所有时区的秒计数器相同,不同时区通过添加偏移来得到当地时间 底层使用秒计数器可以节省硬件设计电路,

    2024年01月23日
    浏览(36)
  • STM32-RTC实时时钟详解

    RTC的本质很简单,就是一个时钟经过精确分频最后得到的一个1Hz的时钟,也可以说是计数器,其他大部分功能都是基于这个计数器设计的数字逻辑。 本文讲的RTC是基于STM32F030来讲的,相比与F1系列的RTC来说,M0的将很多原本需要软件实现的功能硬件化了,使用起来更加便利。

    2024年02月04日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包