一.绪论
RTC是实时时钟的缩写,也可以验证在外设的晶振是否正常或者可用
RTC主要是用于提供精确的实时时间,或者为电子系统提供精确的时间基准。
它可以用于产生年、月、日、时、分、秒等信息。目前实时时钟芯片大多采用精度较高的晶体振荡器作为时钟源。有些时钟芯片为了在主电源掉电时还可以工作,会外加电池供电,使时间信息一直保持有效。
二.RTC的配置
2.1 提示
其实在board.h已经提示我们如何去操作了,现在我们来进行试一下看看是否可以运行吧
2.2配置
打开RT-Thread Settings
配置RTC--打开组件
2.3 打开宏定义-----BSP_USING_ONCHIP_RTC
2.4 打开宏定义
打开stm32f4xx_hal_conf_bak.h(提示我的是直接在RT软件里面的MUX来生成代码的,所以使用的文件就是stm32f4xx_hal_conf_bak.h,有一些是直接在外面使用MUX再来移进RT的话,文件名字可能就是stm32f4xx_hal_conf.h)
三.使用RTC----利用FinSH
命令:date:可以查看当时的日期(年月日时分秒)
date year month day h s (设置年月日时分秒)
3.1测试RTC是否准确的运行
方法一: 可查看是否有时间增加
/*测试RTC*/
struct tm *t;
t =rt_malloc(sizeof(struct tm));
time_t now = 0;
rt_kprintf("Welcome to RTC Word!\n");
/*发送数据*/
while(1)
{
now=time(RT_NULL);
t =localtime(&now);
rt_kprintf("%d %d %d %d %d %d\n",t->tm_year,t->tm_mon,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec);
rt_thread_mdelay(1000);
}
方法二:利用date来读取时间,如何断电过几分钟;再次查询看是否时间增加一致
因为我外面有电池跟我RTC供电