ZHCAEX4 January 2025 F29H850TU , F29H859TU-Q1
EEPROM_UpdatePageData() 函数的功能是更新 EEPROM 页数据。此函数由 EEPROM_Write_Page() 函数调用。
来自写入缓冲区的数据一次写入闪存 64 位,每次循环迭代都会计算偏移。
uint32_t i, Page_Offset;
for(i = 0; i < EEPROM_PAGE_DATA_SIZE / WRITE_SIZE_BYTES; i++)
{
Page_Offset = WRITE_SIZE_BYTES*2 + (WRITE_SIZE_BYTES*i);
EEPROM_Write_Buffer(Page_Pointer + Page_Offset, Write_Buffer + (i*WRITE_SIZE_BYTES));
}
如果编程成功,则会将页面标记为当前并清除 Empty_EEPROM 标志。代码如下所示:
Fill_Buffer(Page_Status, status_buffer_len, CURRENT_PAGE);
EEPROM_Write_Buffer(Page_Pointer, Page_Status);
Empty_EEPROM = 0;
成功写入后,该函数会检查是否需要擦除非活动 EEPROM 单元。如果是这样,函数会擦除单元并清除标志。
if (Erase_Inactive_Unit)
{
EEPROM_Erase_Inactive_Unit();
Erase_Inactive_Unit = 0;
}