新手上路
- 积分
- 37
- 金钱
- 37
- 注册时间
- 2014-8-10
- 在线时间
- 0 小时
|
5金钱
代码中从状态RECEIVE_DATA换到状态VALID_PAGE时并没有先擦除后使用,RECEIVE_DATA为0xEEEE,VALID_PAGE为0x0000,不擦除怎么能写入呢?望高人指点,是不是我哪里理解错了。问题代码如下
PageStatus1 = (*(__IO uint16_t*)PAGE1_BASE_ADDRESS);
else if (PageStatus1 == RECEIVE_DATA) /* Page0 erased, Page1 receive */
{
/* Erase Page0 */
FlashStatus = FLASH_ErasePage(PAGE0_BASE_ADDRESS);
/* If erase operation was failed, a Flash error code is returned */
if (FlashStatus != FLASH_COMPLETE)
{
return FlashStatus;
}
/* Mark Page1 as valid */
FlashStatus = FLASH_ProgramHalfWord(PAGE1_BASE_ADDRESS, VALID_PAGE);//直接写入没有先擦除
/* If program operation was failed, a Flash error code is returned */
if (FlashStatus != FLASH_COMPLETE)
{
return FlashStatus;
}
}
|
|