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;其它大容量的型號能存更多。
