ZHCAEZ8A 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_a.h 中修改起始地址、要使用的扇区数和记录大小。用于 EEPROM 仿真的默认闪存地址为 0x00001000,默认使用两个扇区,因此占用 0x00001000-0x000017ff。此外,仿真 EEPROM 的默认大小为 128 字节。
uint32_t EEPROMEmulationBuffer[EEPROM_EMULATION_DATA_SIZE / sizeof(uint32_t)];main() 的开头添加初始 函数,通常在 SYSCFG_DL_init() 之后。此操作可正确格式化相关的闪存区域并正确分配全局变量。在步骤 3 中,初始函数 EEPROM_TypeA_init() 还会搜索活动记录并将数据从闪存加载到缓冲器。EEPROM_TypeA_init(&EEPROMEmulationBuffer[0]);
图 3-2 EEPROM 初始化EEPROM_TypeA_writeData() 在闪存中创建新记录。EEPROM_TypeA_writeData(&EEPROMEmulationBuffer[0]);
图 3-3 EEPROM 写入gEEPROMTypeAEraseFlag 添加擦除函数。再次写入数据之前需要擦除闪存,擦除的最小单位为扇区。对于 EEPROM 仿真,在一个扇区已满后,设置 gEEPROMTypeAEraseFlag。用户可以根据标志调用 EEPROM_TypeA_eraseLastSector()。例如、在步骤 5 中的 EEPROM_TypeA_writeData() 之后添加以下代码。用户还可以根据需要选择一个适当的时间点来擦除整个扇区。EEPROM_TypeA_eraseLastSector();
图 3-4 EEPROM 擦除