#天空星RTC

ops/2024/10/22 18:26:48/

一、选择时钟源为LSI

二、频率为32.768kHz

三、配置注意:

1.电源管理时钟

2.RTC备份寄存器(每次上电先检测RTC之前是否初始化过)

3.时钟源:LSE or LSI

4.写保护

5.编辑模式

6.日期时间获取

四、代码

/** 立创开发板软硬件资料与相关扩展板软硬件资料官网全部开源* 开发板官网:www.lckfb.com* 技术支持常驻论坛,任何技术问题欢迎随时交流学习* 立创论坛:club.szlcsc.com* 关注bilibili账号:【立创开发板】,掌握我们的最新动态!* 不靠卖板赚钱,以培养中国工程师为己任*/
#include "board.h"
#include "bsp_uart.h"
#include "stdio.h"
#include "sys.h"void RTC_SetDateTime(uint8_t year, uint8_t month, uint8_t date, uint8_t week, uint8_t hour, uint8_t minute, uint8_t second, uint8_t RTC_H12);
void RTC_DateTimeGet(uint8_t *year, uint8_t *month, uint8_t *date, uint8_t *week, uint8_t *hour, uint8_t *minute, uint8_t *second);
void RTC_CheckInit(void);int main(void)
{uint8_t year,month,date,week,hour,minute,second;board_init();uart1_init(115200);/*RTC初始化*/RTC_CheckInit();while(1){       RTC_DateTimeGet(&year,&month,&date,&week,&hour,&minute,&second);printf("the date is : \r\n");printf("%d-%d-%d   %d\r\n",year,month,date,week);printf("the time is : \r\n");printf("%d:%d:%d \r\n",hour,minute,second);delay_ms(1000);}
}/**初始化RTC*/
void RTC_CheckInit(void)
{//1.打开电源管理时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);//2.使能备份寄存器操作PWR_BackupAccessCmd(ENABLE);//3.打开LSIRCC_LSICmd(ENABLE);//4.配置RTC时钟源RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI);//5.使能RTC时钟RCC_RTCCLKCmd(ENABLE);//6.等待时钟同步RTC_WaitForSynchro();//7.检查RTC初始化没有if(RTC_ReadBackupRegister(RTC_BKP_DR0)!=0x2003){printf("SET TIME...\r\n");//8.没有初始化则初始化一个时间日期RTC_SetDateTime(24,4,25,4,14,30,15,RTC_H12_AM);printf("SET TIME END\r\n");}//9.关闭备份寄存器PWR_BackupAccessCmd(DISABLE);
}/**RTC设置时间和日期*/
void RTC_SetDateTime(uint8_t year, uint8_t month, uint8_t date, uint8_t week, uint8_t hour, uint8_t minute, uint8_t second, uint8_t RTC_H12)
{//10.关闭写保护RTC_WriteProtectionCmd(DISABLE);//11.RTC进入编辑模式RTC_InitTypeDef RTC_InitStruct;RTC_EnterInitMode();  //进入编辑模式RTC_InitStruct.RTC_AsynchPrediv=0x7F;RTC_InitStruct.RTC_HourFormat=RTC_HourFormat_24;  //24小时制RTC_InitStruct.RTC_SynchPrediv=0xFF;RTC_Init(&RTC_InitStruct);//12.设置时间RTC_TimeTypeDef RTC_TimeStruct;RTC_TimeStruct.RTC_H12=RTC_H12;RTC_TimeStruct.RTC_Hours=hour;RTC_TimeStruct.RTC_Minutes=minute;RTC_TimeStruct.RTC_Seconds=second;RTC_SetTime(RTC_Format_BIN,&RTC_TimeStruct);  //二进制设置时间//13.设置日期RTC_DateTypeDef RTC_DateStruct;RTC_DateStruct.RTC_Date=date;RTC_DateStruct.RTC_Month=month;RTC_DateStruct.RTC_WeekDay=week;RTC_DateStruct.RTC_Year=year;RTC_SetDate(RTC_Format_BIN,&RTC_DateStruct);  //二进制设置日期//14.RTC退出编辑模式RTC_ExitInitMode();//15.初始化完成,设置备注RTC_WriteBackupRegister(RTC_BKP_DR0,0x2003);//16.RTC开启写保护RTC_WriteProtectionCmd(ENABLE);
}/**获取时间*/
void RTC_DateTimeGet(uint8_t *year, uint8_t *month, uint8_t *date, uint8_t *week, uint8_t *hour, uint8_t *minute, uint8_t *second)
{//17.定义日期结构体RTC_DateTypeDef RTC_DateStruct;//18.获取日期RTC_GetDate(RTC_Format_BIN,&RTC_DateStruct);*year=RTC_DateStruct.RTC_Year;*month=RTC_DateStruct.RTC_Month;*date=RTC_DateStruct.RTC_Date;*week=RTC_DateStruct.RTC_WeekDay;//19.定义时间结构体RTC_TimeTypeDef RTC_TimeStruct;//20.获取时间RTC_GetTime(RTC_Format_BIN,&RTC_TimeStruct);*hour=RTC_TimeStruct.RTC_Hours;*minute=RTC_TimeStruct.RTC_Minutes;*second=RTC_TimeStruct.RTC_Seconds;
}


http://www.ppmy.cn/ops/21507.html

相关文章

在智慧城市的建设中智能电表发挥什么作用

在智慧城市的建设中,智能电表扮演着至关重要的角色。智慧城市是一个利用信息技术手段提升城市运行效率和质量的新型城市模式,旨在通过信息和通信技术的应用,提高城市管理、公共服务、环境保护等方面的质量和效率,促进城市的可持续…

java项目:微信小程序基于SSM框架实现的购物系统小程序【源码+数据库+毕业论文+PPT】

一、项目简介 本项目是一套基于SSM框架实现的购物系统小程序 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功能齐…

js删除数组中间的某个对象

var i -1; var lst objlist.filter(function (item, oindex) { if (item.MealID MealID) { i oindex;//根据条件&#xff0c;查询要删除对象在数组里的索引 } return item.MealID MealID; }) if (i < 0) { return; }//没有找到删除对象 va…

3.车载网络诊断测试用例标准与示例(车载网络诊断测试平台)

文章目录 1.概述2.测试用例2.1 用例名字2.2 用例ID2.3 测试需求来源2.4 测试环境2.5 测试目的2.6 前提条件2.7 手动/自动2.8 测试步骤2.9 评价标准2.10 备注2.11 测试结果2.12 测试数据3.测试用例示例4.其他1.概述

服务器数据恢复—ESXi无法识别数据存储和VMFS文件系统如何恢复数据?

服务器数据恢复环境&#xff1a; 一台某品牌服务器&#xff0c;通过FreeNAS来做iSCSI&#xff0c;然后使用两台同品牌服务器做ESXi虚拟化系统。 FreeNAS层为UFS2文件系统&#xff0c;使用整个存储建一个稀疏模式的文件&#xff0c;挂载到ESXi虚拟化系统。ESXi虚拟化系统中有3台…

Mac如何更换终端默认的python版本

一、Mac中如何更换终端默认的python版本 1、打开终端输入下列代码&#xff0c;打开配置文件 open ~/.bash_profile 2.在打开的配置文件中输入&#xff08;以下代码3.12替换为所下载的版本即可&#xff09; #下面是修改python版本的命令就是环境变量 export PYTHON_HOME/Lib…

59、馒头关于对国内脑机接口部分公司的介绍[按照地区分类]

最近群内不少同学咨询脑机接口公司招聘相关事宜&#xff0c;在这里统一说一下&#xff0c;我作为脑机产业联盟的一名老师&#xff0c;对于国内熟知不少公司、研究所和高校老师。截至2024年3月脑机联盟理事会议在北京召开的第二次会议显示&#xff0c;目前国内脑机公司达到了179…