项目场景:
一个具有使用本地数据保存的产品,在测试过程中发现数据超过65535字节时,读取数据记录的数据字节数不对,总是丢失高16位的记录数.
问题描述:
问题代码如下:
uint32_t EEread_DataAdd(void)
{
uint8_t temp[4];
uint16_t high,low;
uint32_t ndata;
temp[0] = FLASH_0_read_eeprom_byte((uint16_t)DataAdd_EEaddr);
temp[1] = FLASH_0_read_eeprom_byte((uint16_t)DataAdd_EEaddr + 1);
temp[2] = FLASH_0_read_eeprom_byte((uint16_t)DataAdd_EEaddr + 2);
temp[3] = FLASH_0_read_eeprom_byte((uint16_t)DataAdd_EEaddr + 3);
high = (uint16_t)((uint16_t)(temp[0] << 8) | temp[1]);
low = (uint16_t)((uint16_t)(temp[2] << 8) | temp[3]);
ndata = (uint32_t)((uint32-t)(high << 16)|low)