当前位置: 首页 > java >正文

2025年第16届蓝桥杯嵌入式竞赛学习笔记(十四):RTC实时时钟

1.功能实现

①设置时间和日期

②读取时间和日期

③设置一个闹钟

2.STM32CubeMX配置

打开Timers栏,点击RTC进入配置界面,将时钟源与日历使能,随后使能中断

点开参数配置,设置24小时计数法,Data Format选择二进制数据形式,下面三栏分别为小时、分钟、秒。分别设置为23、30、10

日历的配置同时钟的时分秒一样随意配置即可。

进行闹钟A的配置,时分秒设为23、30、20,将Alarm Mask Date Week day 使能(闹钟响起时不考虑日期),配置完成后生成代码

3.代码配置

首先开打CubeMX给配置的rtc.c文件,将第37、38行定义的两个结构体复制到使用处

RTC_TimeTypeDef sTime = {0};RTC_TimeTypeDef sDate = {0};

 之后使用获取时间与日期函数

HAL_RTC_GetTime(&hrtc,&sTime,RTC_FORMAT_BIN);
HAL_RTC_GetDate(&hrtc,&sDate,RTC_FORMAT_BIN);

注意:即使不需要日期,也要将获取日期函数加上,不然时间不会流动

使用LCD屏查看

char Text[20];void LCD_Show(void)
{sprintf(Text,"%2d:%2d:%2d",sTime.Hours,sTime.Minutes,sTime.Seconds);LCD_DisplayStringLine(Line0,(uint8_t *)Text);sprintf(Text,"%d-%d-%d-%d",sDate.Year,sDate.Month,sDate.Date,sDate.WeekDay);LCD_DisplayStringLine(Line2,(uint8_t *)Text);
}

接下来写闹钟的中断

使用闹钟中断的回调函数

void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)
{//闹钟中断要执行的代码放这里
}

当时间达到闹钟A设置的参数时,触发中断回调函数

http://www.xdnf.cn/news/472.html

相关文章:

  • 算法--打表法
  • JS案例-基于Proxy的响应式数据
  • [密码学基础]国密算法深度解析:中国密码标准的自主化之路
  • 在已有的vue项目中使用vuex
  • 鸿蒙开发11-ARKUI框架
  • 谷歌称LLMs.txt类似于关键词元标签:SEO影响与应对策略
  • 提升电脑性能!Windows超级管理器,免费使用,功能全面!
  • 开启健康养生新旅程
  • 单片机毕业设计选题物联网计算机电气电子类
  • 数字孪生赋能管理系统,降本增效立竿见影
  • 使用Spring Validation实现参数校验
  • 使用 MicroPython 在 ESP32-S3 上驱动 WS2812 LED 彩虹灯
  • 第34讲|遥感大模型对比实战:SAM vs. CLIP vs. iSAM
  • Policy Gradient思想、REINFORCE算法,以及贪吃蛇小游戏(四)(完结)
  • 基于 Linux 环境的办公系统开发方案
  • 智能座舱架构与芯片 - 背景篇
  • 医院科研科AI智能科研支撑平台系统设计架构方案探析
  • 点云(Point Cloud)介绍
  • Cocos Creater打包安卓App添加隐私弹窗详细步骤+常见问题处理
  • 第33讲|遥感大模型在地学分类中的初探与实战
  • PyTorch :优化的张量库
  • 数据从辅存调入主存,页表中一定存在
  • websocket和SSE学习记录
  • 得物官网sign签名逆向分析
  • Qt QWidget介绍及学习方法路线分享
  • 服务治理-服务注册
  • 【记录】服务器安装ffmpeg
  • 在 Amazon Graviton 上运行大语言模型:CPU 推理性能实测与调优指南
  • 整合SSM——(SpringMVC+Spring+Mybatis)
  • 10.thinkphp的响应