STM32 Flash 擦除 读写 成功
参考:http://download.csdn.net/detail/my_friend_ship/4166970 要点: 将数据写入flash之前,每次都要擦除,否则会写入不成功,出现的错误状态为:FLASH_Status=FLASH_ERROR_PG 写入数据成功后可以在Memory 中查看刚刚写入的数据,具体在Memory 窗口中输入:0x08010000,既可以看到此处的数据为?:Data = 0x15041979;//要写入的地址 擦除的起始地址与终止地址 #define StartAddr ?((u32)0x08010000) //擦除 char IAP_Init()//初始化loaded 的flash {? FLASHStatus = FLASH_COMPLETE; ? //MemoryProgramStatus = PASSED; ?? ? /* Unlock the Flash Program Erase controller */ ? FLASH_Unlock(); ? /* Define the number of page to be erased */ ? NbrOfPage = (EndAddr - StartAddr) / FLASH_PAGE_SIZE; ? /* Clear All pending flags */ ? FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR); ? /* Erase the FLASH pages */ ? for(EraseCounter = 0; (EraseCounter < NbrOfPage) && (FLASHStatus == FLASH_COMPLETE); EraseCounter++) ? { ? ? FLASHStatus = FLASH_ErasePage(StartAddr + (FLASH_PAGE_SIZE * EraseCounter)); ? } ?return ?FLASHStatus; } int main(void) ? Data = 0x15041979;//要写入的地址 {? } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |