RT 您所在的位置:网站首页 索尼DSc一H1o相机开机设置年月日时间就是不能开机 RT

RT

2024-07-03 07:46| 来源: 网络整理| 查看: 265

目录 前言RTC简介在RT-Thread Studio中开启RTC1.打开RTC驱动2.打开RTC的宏定义3.使能RTC4.下载验证 解决复位不保存年月日问题操作步骤调试验证 总结

前言

最近使用RT-Thread Studio开发工程时,发现STM32F103系列芯片的RTC功能存在一些缺陷,和同学查找了一些资料后得以解决,希望以此博客作为记录以便温故知新。

RTC简介

RTC(Real-Time Clock)译为实时时钟,因为它一般是集成电路,故也称为时钟芯片。它能提供精确的实时时间,可以用于产生年、月、日、时、分、秒等信息。

在RT-Thread Studio中开启RTC

首先,我们在drivers目录中打开board.h源文件,找到RTC相关内容如下: 在这里插入图片描述 按照如上提示,通过以下三个步骤打开RTC。

1.打开RTC驱动

双击RT-Thread Setting,进入界面后点击更多配置。 在这里插入图片描述 接着找到RTC驱动并勾选。 在这里插入图片描述

2.打开RTC的宏定义

在board.h文件中,去掉RTC宏定义的注释。 在这里插入图片描述

3.使能RTC

在drivers目录下的stm32xxxhal_config.h文件中去掉如下代码的注释。在这里插入图片描述

4.下载验证

编译工程后下载到开发板,参照官方开发手册进行验证。

官方文档 首先,使用date命令查询当前时间,随后按照格式输入当前时间,可以看到设置成功。

然而,当按下系统复位按键,系统重启后再使用date命令查询时间时,可以看到时分秒均正常保存,但是日期却并不正确。 在这里插入图片描述

解决复位不保存年月日问题

查找资料后,发现是因为STM32F1系列芯片不支持日历功能,但好在可以通过修改程序进行修正。

在RT-Thread社区看到一篇帖子,里面的方法解决了这个问题。原帖地址

操作步骤

1.打开drivers目录下的drv_rtc.c文件 2.修改get_rtc_timestamp()函数如下

static time_t get_rtc_timestamp(void) { #if 0 RTC_TimeTypeDef RTC_TimeStruct = {0}; RTC_DateTypeDef RTC_DateStruct = {0}; struct tm tm_new; HAL_RTC_GetTime(&RTC_Handler, &RTC_TimeStruct, RTC_FORMAT_BIN); HAL_RTC_GetDate(&RTC_Handler, &RTC_DateStruct, RTC_FORMAT_BIN); tm_new.tm_sec = RTC_TimeStruct.Seconds; tm_new.tm_min = RTC_TimeStruct.Minutes; tm_new.tm_hour = RTC_TimeStruct.Hours; tm_new.tm_mday = RTC_DateStruct.Date; tm_new.tm_mon = RTC_DateStruct.Month - 1; tm_new.tm_year = RTC_DateStruct.Year + 100; LOG_D("get rtc time."); return mktime(&tm_new); #else time_t timestamp; timestamp = RTC->CNTH; /* 得到计数器中的值(秒钟数) */ timestamp 0}; RTC_DateTypeDef RTC_DateStruct = {0}; struct tm *p_tm; p_tm = localtime(&time_stamp); if (p_tm->tm_year return -RT_ERROR; } if (HAL_RTC_SetDate(&RTC_Handler, &RTC_DateStruct, RTC_FORMAT_BIN) != HAL_OK) { return -RT_ERROR; } LOG_D("set rtc time."); HAL_RTCEx_BKUPWrite(&RTC_Handler, RTC_BKP_DR1, BKUP_REG_DATA); return RT_EOK; #else /* 设置时钟 */ RCC->APB1ENR |= 1CRL &= ~(1


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有