本帖最后由 AINZGOWN 于 2021-8-11 16:48 编辑
非常的直观,前两项为EEPROM的写入读取,后面的则是FLASH的字节,字,块等写入读取
根据官方datasheet中的地址表可以完成指定地址的数据写入,需要注意的是MCC生成的API中,EEPROM使用的是偏移地址,FLASH是真实地址
可以看到EEPROM中地址偏移了0x380000
FLASH则没有
我们在MAIN函数中进行测试并debug看看效果
void main(void)
{
// Initialize the device
SYSTEM_Initialize();
FLASH_WriteWord(0x1FF00,0x55AA); //在0x1FF00写入0x55AA数据
DATAEE_WriteByte(0x0001,0xbb); //在0x380001写入0xbb数据
uint8_t value;
uint16_t flash_value;
value=DATAEE_ReadByte(0x0001); //读取数据并赋值
flash_value=FLASH_ReadWord(0x1FF00);
while (1)
{
// Add your application code
printf("%o\n",value);
printf("%x\n",flash_value);
__delay_ms(1000);
}
}
再观察两个变量的值,可以发现已经正常读取,eeprom的值前面还会显示ASCII码表对应的符号
|