ZHCAEZ9A February 2025 – August 2025 MSPM0C1103 , MSPM0C1103-Q1 , MSPM0C1104 , MSPM0C1104-Q1 , MSPM0C1105 , MSPM0C1106 , MSPM0C1106-Q1 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G1518 , MSPM0G1519 , MSPM0G3105 , MSPM0G3105-Q1 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3505-Q1 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0G3518 , MSPM0G3518-Q1 , MSPM0G3519 , MSPM0G3519-Q1 , MSPM0H3216 , MSPM0H3216-Q1 , MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
drivelib。
图 3-1 EEPROM
仿真文件
用户可以修改 eeprom_emulation_type_b.h 中的起始地址、组数(至少两个)和一个组中的扇区数(至少一个)。用于 EEPROM 仿真的默认闪存地址为 0x00001400,默认使用六个扇区(分三组,每组两个扇区),因此占用 0x00001400-0x00002bff。
#define
EEPROM_EMULATION_ADDRESS (0x00001400)#define
EEPROM_EMULATION_GROUP_ACCOUNT (3)#define
EEPROM_EMULATION_SECTOR_INGROUP_ACCOUNT (2)initialize 函数(在 main() 开头),通常在
SYSCFG_DL_init()
之后。这样就可以正确格式化相关的闪存区域并正确分配全局变量,以跟踪活动组和最新数据项。EEPROMEmulationState =
EEPROM_TypeB_init();
图 3-2 EEPROM
仿真初始化EEPROM_TypeB_write 通过 16 位标识符写入 32 位数据。EEPROMEmulationState = EEPROM_TypeB_write(var_id,
var_data);
图 3-3 EEPROM
仿真写入EEPROM_TypeB_readDataItem 根据输入标识符读取数据。var_data_read =
EEPROM_TypeB_readDataItem(var_id);
图 3-4 EEPROM
仿真读取gEEPROMTypeBEraseFlag 添加擦除函数。再次写入数据之前需要擦除闪存,擦除的最小单位为扇区。对于
EEPROM 仿真 B 型,在一个组已满后,设置 gEEPROMTypeBEraseFlag。用户可以根据标志调用
EEPROM_TypeB_eraseGroup()。例如,在步骤 4 中的 EEPROM_TypeB_write()
之后添加以下代码。用户还可以根据需要选择一个适当的时间点来擦除整个组。EEPROM_TypeB_eraseGroup();
图 3-5 EEPROM
仿真擦除