#天空星RTC

server/2024/12/22 23:07:18/

一、选择时钟源为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/server/22961.html

相关文章

Java知识点补充

反向代理的作用是什么? 是位于客户端和服务端之间一个代理模型,接受客户端的请求,将其转发到后端服务中,然后将后端响应传回客户端。 负载均衡:减少单个服务器之间的压力,将流量重定向到多个服务器中常见的…

C语言例题30:将一个正整数分解质因数

#include <stdio.h>void main() {int i;int x;printf("请输入一个正整数&#xff1a;");scanf("%d", &x);printf("%d ", x);//方法一&#xff1a;for (i 2; i < x; i) { //除数&#xff0c;从质数2开始while (x % i 0) { //能…

爬虫的实战应用之短信炸弹playwright现代网页测试工具

不讲废话&#xff0c;先上原理&#xff1a; 短信炸弹&#xff0c;也就是说持续对一个手机进行发送短信&#xff0c;实现的方式就是&#xff0c;利用某些网站的登录 &#xff0c;注册的时候&#xff0c;发送短信验证码来实现。 如下图&#xff0c;其中有一个id为phone的输入框&a…

k8s的PV/PVC详解以及使用范例

PV和PVC是什么 在 Kubernetes (k8s) 中&#xff0c;Persistent Volume (PV) 和 Persistent Volume Claim (PVC) 是管理存储资源的两个重要概念。它们抽象了存储细节&#xff0c;允许用户在不了解底层存储细节的情况下使用存储资源。 Persistent Volume (PV)&#xff1a; PV …

go版本1.16.5 运行项目出现undefined: math.MaxInt报错

问题描述 go版本 go1.16.5 项目引用了 包go-sqlite3 v1.14.17 github.com/mattn/go-sqlite3 v1.14.17运行报错 # github.com/mattn/go-sqlite3 D:\GoPATH\pkg\mod\github.com\mattn\go-sqlite3v1.14.17\sqlite3_opt_serialize.go:41:26: undefined: math.MaxInt原因分析&…

C++ 指针

每一个变量都有一个内存位置&#xff0c;每一个内存位置都定义了可使用连字号&#xff08;&&#xff09;运算符访问的地址&#xff0c;它表示了在内存中的一个地址。请看下面的实例&#xff0c;它将输出定义的变量地址&#xff1a; #include <iostream>using namesp…

使用这 7 个绩效评估模板简化您的员工评估

绩效评估受到了不好的评价&#xff1b;员工发现它们压力很大&#xff0c;而管理者则发现它们很耗时。 但随着绩效管理成为 2024 年人力资源的首要任务&#xff0c;也许是时候重新思考了。绩效评估模板可以帮助减轻评估过程的麻烦。通过为管理者提供一种简单、标准化的方法来评…

无人机+集群组网+单兵图传:空地一体化组网技术详解

空地一体化组网技术是一种结合了无人机、集群自组网和单兵图传等多种技术的先进通信解决方案。这种技术方案的主要目的是在前线事故现场和后方指挥中心之间建立一个高效、稳定的通信链路&#xff0c;以确保信息的实时传输和指挥的顺畅进行。 首先&#xff0c;前端视频采集部分&…