你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32CubeMX-实时时钟(RTC)

[复制链接]
STMCU 发布时间:2020-10-19 12:48
STM32CubeMX-实时时钟(RTC)


RTC简介
    实时时钟 (RTC) 是一个独立的 BCD 定时器/计数器。RTC 提供具有可编程闹钟中断功能的日历时钟 /日历。RTC 还包含具有中断功能的周期性可编程唤醒标志。系统可以自动将月份的天数补偿为 28、29(闰年)、30 和 31 天。只要芯片的备用电源一直供电,RTC上的时间会一直走。
新建工程
    本章程序在串口printf工程的基础上修改,复制串口printf的工程,修改文件夹名。点击STM32F746I.ioc打开STM32cubeMX的工程文件重新配置。RTC选择内部唤醒(Internal WakeUp)开启RTC。开启外部低速晶振,PC14,PC15配置。
11.png
    RTC时钟选择为外部低速晶振(LSE),频率为32.768。
    在RTC配置中,设置时间和日期,其他为默认设置。此处设置时间为2016/04/16 16:25:49。
12.png
    生成报告以及代码,编译程序。
添加应用程序
    在rtc.c文件中可以看到ADC初始化函数。在stm32f7xx_hal_rtc.h头文件中可以看到rtc时间和日期读写操作函数。
13.png
    从操作函数中可以看到,时间和日期是以结构体的形式读写的。所以在main.c文件前面申明两个结构体变量存储读取的时间和日期数据。


  1. <font size="3">/* USER CODE BEGIN PV */
  2. /* Private variables --------*/
  3. RTC_DateTypeDef sdatestructure;
  4. RTC_TimeTypeDef stimestructure;
  5. /* USER CODE END PV */</font>
复制代码


在stm32f7xx_hal_rtc.h头文件中,可以找到RTC_TimeTypeDef,RTC_DateTypeDef这两个结构体的成员变量。
14.png
在while循环中添加应用程序,读取当前的时间和日期,并通过串口发送到电脑上显示。

  1. <font size="3">/* USER CODE BEGIN WHILE */
  2. while (1)
  3. {
  4. /* USER CODE END WHILE */
  5. /* USER CODE BEGIN 3 */
  6.       /* Get the RTC current Time ,must get time first*/
  7.       HAL_RTC_GetTime(&hrtc, &stimestructure, RTC_FORMAT_BIN);
  8.       /* Get the RTC current Date */
  9.       HAL_RTC_GetDate(&hrtc, &sdatestructure, RTC_FORMAT_BIN);
  10.       /* Display date Format : yy/mm/dd */
  11.       printf("%02d/%02d/%02d\r\n",2000 + sdatestructure.Year, sdatestructure.Month, sdatestructure.Date);
  12.       /* Display time Format : hh:mm:ss */
  13.       printf("%02d:%02d:%02d\r\n",stimestructure.Hours, stimestructure.Minutes, stimestructure.Seconds);
  14.       printf("\r\n");
  15.       HAL_Delay(1000);
  16. }
  17. /* USER CODE END 3 */</font>
复制代码


程序中使用HAL_RTC_GetTime(),HAL_RTC_GetDate()读取时间和日期,并保存到结构体变量中,然后通过串口输出读取的时间和日期。注意:要先读取时间再读取日期,如果先读取日期在读取时间会导致读取的时间不准确,一直都是原来设置的时间。
编译程序并下载到开发板。打开串口调试助手。设置波特率为115200。串口助手上会显示RTC的时间日期。













收藏 评论0 发布时间:2020-10-19 12:48

举报

0个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版