STM32F103的备份寄存器BKP
STM32F103RBT6没有eeprom想要存一些数据怎么办?
1.可以加个外部EEPROM,
2.使用自带的备份寄存器,需要VBAT一直供电,加个小纽扣电池不是啥大问题。
下面是代码
void Param_Read(void)
{
uint16_t temp;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);//时钟使能
PWR_BackupAccessCmd(ENABLE);//允许操作备份寄存器
temp = BKP_ReadBackupRegister(BKP_DR1);//读第一个位置备份数据
if (temp != 0x49E7)
{
Servo.Interval = 5;
Motor.Gap = 1000;
Param_Save();
return;
}
Motor.Gap = BKP_ReadBackupRegister(BKP_DR2);
Servo.Interval = BKP_ReadBackupRegister(BKP_DR3);
BKP_ClearFlag();//清除复位标志,可自行补习这部分知识,此处不多叙述
PWR_BackupAccessCmd(DISABLE);//操作完毕
}
使用并不麻烦
不同型号的备份容量也不一样STM32F103RBT6为16bit能存20字节,
人话就是能存10个16bit数据;那么地址就是BKP_DR1到BKP_DR10;其它大容量的型号能存更多。

浙公网安备 33010602011771号