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