STM32标准库开发—实时时钟(BKP+RTC)

BKP配置结构

注意事项
BKP基本操作

时钟初始化

c 复制代码
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP, ENABLE);
	PWR_BackupAccessCmd(ENABLE);//设置PWR_CR的DBP,使能对PWR以及BKP的访问

读写寄存器操作

c 复制代码
	uint16_t ArrayWrite[] = {0x1234, 0x5678};
	BKP_WriteBackupRegister(BKP_DR1, ArrayWrite[0]);
	BKP_WriteBackupRegister(BKP_DR2, ArrayWrite[1]);
	
	uint16_t ArrayRead[2];
	ArrayRead[0] = BKP_ReadBackupRegister(BKP_DR1);
	ArrayRead[1] = BKP_ReadBackupRegister(BKP_DR2);

RTC配置结构

RTC实现实时时钟

设置时间函数,已经手动更改为东八区时间,默认情况下time.h里为伦敦时区

c 复制代码
void MyRTC_SetTime(void)
{
	time_t time_cnt;
	struct tm time_date;
	
	time_date.tm_year = MyRTC_Time[0] - 1900;
	time_date.tm_mon = MyRTC_Time[1] - 1;
	time_date.tm_mday = MyRTC_Time[2];
	time_date.tm_hour = MyRTC_Time[3];
	time_date.tm_min = MyRTC_Time[4];
	time_date.tm_sec = MyRTC_Time[5];
	
	time_cnt = mktime(&time_date) - 8 * 60 * 60;
	
	RTC_SetCounter(time_cnt); //设置CNT寄存器的值
	RTC_WaitForLastTask();
}

RTC初始化函数,32.768KHZ晶振

c 复制代码
void MyRTC_Init(void)
{
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);//时钟初始化
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP, ENABLE);//时钟初始化
	PWR_BackupAccessCmd(ENABLE);
	if (BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5)//如果系统完全断电才需初始化
	{
		RCC_LSEConfig(RCC_LSE_ON);//选择LSE的时钟
		while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) != SET);
		
		RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
		RCC_RTCCLKCmd(ENABLE);
		//为了防止时钟不同步,必须写入以下这俩条
		RTC_WaitForSynchro(); //查询RSF标志位
		RTC_WaitForLastTask(); //查询RTOFF标志位
		
		RTC_SetPrescaler(32768 - 1);
		RTC_WaitForLastTask();
		
		MyRTC_SetTime();
		
		BKP_WriteBackupRegister(BKP_DR1, 0xA5A5);//设置BKP的值
	}
	else
	{
		RTC_WaitForSynchro();
		RTC_WaitForLastTask();
	}
}
时钟旁路选择

RCC_LSEConfig可以选择Bypass,旁路时钟信号,这意味着可以外部生成电平信号作为时钟信号,而这个信号的引脚名称是OSE32_IN

相关推荐
森焱森2 小时前
水下航行器外形分类详解
c语言·单片机·算法·架构·无人机
小殷学长4 小时前
【单片机毕业设计17-基于stm32c8t6的智能倒车监测系统】
stm32·单片机·课程设计
TESmart碲视6 小时前
HKS201-M24 大师版 8K60Hz USB 3.0 适用于 2 台 PC 1台显示器 无缝切换 KVM 切换器
单片机·嵌入式硬件·物联网·游戏·计算机外设·电脑·智能硬件
花落已飘7 小时前
STM32中实现shell控制台(shell窗口输入实现)
stm32·单片机·嵌入式硬件
花落已飘7 小时前
STM32中实现shell控制台(命令解析实现)
stm32·shell
没有钱的钱仔7 小时前
STM32低功耗模式全面指南
css·stm32·css3
牵牛老人9 小时前
Qt处理USB摄像头开发说明与QtMultimedia与V4L2融合应用
stm32·单片机·qt
宇钶宇夕10 小时前
针对工业触摸屏维修的系统指南和资源获取途径
单片机·嵌入式硬件·自动化
和风化雨11 小时前
stm32的三种开发方式
stm32·单片机·嵌入式硬件
kanhao10011 小时前
三态逻辑详解:单片机GPIO、计算机总线系统举例
单片机·嵌入式硬件