flash模拟EEROM
生活随笔
收集整理的這篇文章主要介紹了
flash模拟EEROM
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
FLASH中:0x08000000--0x08000000+SIZE保存的是用戶代碼
Rule:
16位為傳輸單位
讀數據:
u16 STMFLASH_ReadHalfWord(u32 faddr)
- 可以在通用地址空間直接尋址:data=*(vu16*)ADDR;[ADDR為32位數據,指向的數據為uv16型]
寫數據:
- 寫之前1:解鎖FLASH_KEYR(FLASH_Lock(void);|?FLASH_Lock(void);)
- 寫之前2:擦除,也就是其值必須是 0XFFFF,否則無法寫入。[擦除頁或直接擦除ALL] ?1頁=2k字節
- 寫之前3: ?確保BSY 位為’0’
- 寫半字即16位(FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data);庫里還有Word,byte版本實際上就是寫兩次HalfWord或1個byte占16位)
- Wait until BSY==1
擦除:
- FLASH_Status FLASH_ErasePage(uint32_t Page_Address);
- FLASH_Status FLASH_EraseAllPages(void);
- FLASH_Status FLASH_EraseOptionBytes(void);
ALIENTEK:
void STMFLASH_Write(u32 WriteAddr,u16 *pBuffer,u16 NumToWrite)
void STMFLASH_Read(u32 ReadAddr,u16 *pBuffer,u16 NumToRead)
Insure That:
- 地址必須是用戶代碼區以外的地址,如果把用戶代碼給卡擦了,可想而知你運行的程序可能就被廢了(先在KEIL中限制程序空間,但只要重刷就會失效)
- 地址必須是 2 的倍數。
轉載于:https://www.cnblogs.com/2cats/p/3598952.html
總結
以上是生活随笔為你收集整理的flash模拟EEROM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 个性签名女生爱情伤感
- 下一篇: 相见不能见的伤痛是什么歌呢?