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

STM32G0单片机自带RTC

STM32有个自带RTC外设,外接32.768KHz的晶振后可得到相对精确的计时功能。
实测了一个一小时快个1秒多。

1 cubeMX设置了RTC后自动生成的初始化代码如下

static void MX_RTC_Init(void)
{/* USER CODE BEGIN RTC_Init 0 *//* USER CODE END RTC_Init 0 */RTC_TimeTypeDef sTime = {0};RTC_DateTypeDef sDate = {0};/* USER CODE BEGIN RTC_Init 1 *//* USER CODE END RTC_Init 1 *//** Initialize RTC Only*/hrtc.Instance = RTC;hrtc.Init.HourFormat = RTC_HOURFORMAT_24;hrtc.Init.AsynchPrediv = 127;hrtc.Init.SynchPrediv = 255;hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;hrtc.Init.OutPutRemap = RTC_OUTPUT_REMAP_NONE;hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;hrtc.Init.OutPutPullUp = RTC_OUTPUT_PULLUP_NONE;if (HAL_RTC_Init(&hrtc) != HAL_OK){Error_Handler();}/* USER CODE BEGIN Check_RTC_BKUP *//* USER CODE END Check_RTC_BKUP *//** Initialize RTC and set the Time and Date*/sTime.Hours = 9;sTime.Minutes = 0;sTime.Seconds = 0;sTime.SubSeconds = 0;sTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;sTime.StoreOperation = RTC_STOREOPERATION_RESET;if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BIN) != HAL_OK){Error_Handler();}sDate.WeekDay = RTC_WEEKDAY_MONDAY;sDate.Month = RTC_MONTH_JANUARY;sDate.Date = 1;sDate.Year = 25;if (HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BIN) != HAL_OK){Error_Handler();}/* USER CODE BEGIN RTC_Init 2 *//* USER CODE END RTC_Init 2 */}

2 修改RTC时间设置

HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BIN)HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BIN)

3 读取当前日期时间

HAL_RTC_GetTime(&RTC_Handler,&RTC_TimeStruct,RTC_FORMAT_BIN);
HAL_RTC_GetDate(&RTC_Handler,&RTC_DateStruct,RTC_FORMAT_BIN);

注意先读时间,再读日期。如果顺序调过来,会很耗时(像被卡住好几秒)。

http://www.dtcms.com/a/134337.html

相关文章:

  • MySQL数据库 - 存储引擎
  • 通过WebRTC源码入门OpenGL ES
  • IJCV-2025 | 深圳大学记忆增强的具身导航!ESceme:基于情景记忆的视觉语言导航
  • React与Vue:哪个框架更适合入门?
  • C#实现通过MQTT Broker——EMQX发布订阅消息及其认证、授权的安全配置操作
  • PyTorch逻辑回归总结
  • Linux中设置文件开机自启
  • HarmonyOS-ArkUI V2工具类:AppStorageV2:应用全局UI状态存储
  • 程序化广告行业(87/89):创意审核要求与广告法合规要点
  • __progname宏的用途(摘自DeepSeek)
  • java基础课程-springmvc课程
  • Spring如何动态修改bean属性对应的配置key
  • Git 学习笔记
  • 2025年计算机领域重大技术突破与行业动态综述
  • Python入门到精通6:CSS网页美化入门1
  • 考研单词笔记 2025.04.15
  • React 更新 state 中的数组
  • ARM Cortex汇编伪指令
  • 深入理解 Java 内存区域与内存溢出异常
  • 研发效率破局之道阅读总结(2)流程优化
  • 【论文阅读】Orion: Online Backdoor Sample Detection via Evolution Deviance
  • 鸿蒙应用开发—鸿蒙app一键安装脚本
  • Vue3监听数据变化方法详解
  • 详解LeetCode中用字符串实现整数相加,字符串转整数及其溢出处理详解
  • 网络编程(UDP)
  • Flutter 应用在真机上调试的流程
  • HOW - 前端 sdk 实践(一)
  • 如何写好合同管理系统需求分析
  • 软考教材重点内容 信息安全工程师 第22章 网站安全需求分析与安全保护工程
  • 【C++算法】60.哈希表_字母异位词分组