仍然是没有考过的知识点
朴素的讲就是板子中一块不会因为断电重启而导致数值初始化的一片地址
要注意的是有时候容易把板子什么写错导致板子什么地址写坏了导致程序无法烧录,这个时候记得一直按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