本帖最后由 nicholasldf 于 2017-12-8 17:39 编辑
以前记得擦除后是0xFF的,,今天调试发现,STM32L151调用官方库函数FLASH擦除也没有报错啊,但数据却全是0x00。。。
但是编程数据写进去是可以的,而且写数据也是正确的。。。奇怪了
翻遍了用户手册《STM32L1xxx Reference Manual.pdf》和数据手册《STM32L151x&L152x.pdf》,,,
也没有找到任何一个地方说明,,FLASH擦除后是0x00还是0xFF。。。
//Erase the sector(total 16 pages)
HAL_FLASH_Unlock();
EraseInitStruct.TypeErase = FLASH_TYPEERASE_PAGES;
EraseInitStruct.PageAddress = USER_DATA_ADDRESS_SECTOR1 + (CurSector-1)*0x1000;
EraseInitStruct.NbPages = 16;
HAL_FLASHEx_Erase(&EraseInitStruct, &PAGEError);
HAL_FLASH_Lock();
以下是FLASH数据截图,,写进去是对的,,读出来的数据,有时候可以读对,,有时候读的数据是错的。
用STM32L512-Discovery开发板测试,,发现擦除后,,ST-LINK监控FLASH也全是0值
|