江科大笔记—读写备份寄存器&实时时钟

读写备份寄存器&实时时钟

读写备份寄存器
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/40e14789ba9a46a980d041edf0fafbda.jp

VBAT接STKINL的3.3V引脚,PB1接按键。

BKP初始化步骤:
第一步,开启PWR和BKP的时钟
第二步,使用PWR_CR的DBP函数,使能对BKP和RTC的访问。
第三步,写入数据,使用BKP写入数据函数;读取数据,使用BKP读取数据函数。

BKP常用库函数:

void BKP_DeInit(void); // 恢复缺省配置,将所有配置清0  纽扣电池一直有电后不会自动清0的。

// 用于Tamper侵入检测功能
void BKP_TamperPinLevelConfig(uint16_t BKP_TamperPinLevel); // 侵入检测功能 配置Tamper引脚有效电平高电平、低电平触发
void BKP_TamperPinCmd(FunctionalState NewState);            // 是否开启侵入检测功能
void BKP_ITConfig(FunctionalState NewState);                // 配置中断
void BKP_RTCOutputConfig(uint16_t BKP_RTCOutputSource);     // 时钟输出功能的配置 可以选择在RTC引脚上输出时钟信号  输出RTC校准时钟RTC闹钟脉冲或者秒脉冲
void BKP_SetRTCCalibrationValue(uint8_t CalibrationValue);  // 设置RTC校准值(写入RTC校准寄存器)

// 读写BKP
void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data); //写备份寄存器;第一个参数指定,写在哪个DR里,第二个参数,写入的数据
uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR);      //读备份寄存器
FlagStatus BKP_GetFlagStatus(void);
void BKP_ClearFlag(void);
ITStatus BKP_GetITStatus(void);
void BKP_ClearITPendingBit(void);

PWR外设库函数

void PWR_DeInit(void);
void PWR_BackupAccessCmd(FunctionalState NewState); //备份寄存器访问使能  前面讲的设置PWR_CR的DBP,使能对BKP和RTC的访问
void PWR_PVDCmd(FunctionalState NewState);
void PWR_PVDLevelConfig(uint32_t PWR_PVDLevel);
void PWR_WakeUpPinCmd(FunctionalState NewState);
void PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry);
void PWR_EnterSTANDBYMode(void);
FlagStatus PWR_GetFlagStatus(uint32_t PWR_FLAG);
void PWR_ClearFlag(uint32_t PWR_FLAG);

main.c

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "Key.h"

uint8_t KeyNum;					//定义用于接收按键键码的变量

uint16_t ArrayWrite[] = {
   0x1234, 0x5678};	//定义要写入数据的测试数组
uint16_t ArrayRead[2];						//定义要读取数据的测试数组

int main(void)
{
   
	/*模块初始化*/
	OLED_Init();				//OLED初始化
	Key_Init();					//按键初始化
	
	/*显示静态字符串*/
	OLED_ShowString(1, 1, "W:"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值