仍然是没有考过的知识点
朴素的讲就是板子中一块不会因为断电重启而导致数值初始化的一片地址
要注意的是有时候容易把板子什么写错导致板子什么地址写坏了导致程序无法烧录,这个时候记得一直按flash键烧录,烧录时会报错,点击确定,松开flash键立即烧录即可烧录进去
一个字是4字节,一个字节8位, 一个字32位
代码:
uint32_t VALUE = 0;
void Function_EepromRead(uint32_t address, uint32_t* data){
uint32_t* TrueAddress;
TrueAddress = (uint32_t* ) (address + DATA_EEPROM_BASE); // 取数据的地址
HAL_FLASHEx_DATAEEPROM_Unlock(); // 解锁
*data = *TrueAddress; // 取数据
HAL_FLASHEx_DATAEEPROM_Lock(); //上锁
}
void Function_GetEepromData(){
Function_EepromRead(4, &VALUE); // 注意是传入地址 按4的倍数去写
OLED_ShowChar(0, 0, VALUE + '0');
VALUE ++;
HAL_FLASHEx_DATAEEPROM_Unlock(); // 解锁
HAL_FLASHEx_DATAEEPROM_Program(FLASH_TYPEPROGRAMDATA_WORD, DATA_EEPROM_BASE + 4, VALUE); // 存数据
HAL_FLASHEx_DATAEEPROM_Lock(); // 上锁
}
按字写入
FLASH_TYPEPROGRAMDATA_WORD
EEPROM地址位置
DATA_EEPROM_BASE