stm32閃存的理解
STM32f1xxx的閃存模塊由:主存閃存、信息塊和閃存存儲(chǔ)器接口寄存器等3部分組成。
各個(gè)部分的大小因不同型號(hào)有一定的差異,數(shù)據(jù)手冊可以看到
- 小容量產(chǎn)品主存儲(chǔ)塊1-32KB,每頁1KB。系統(tǒng)存儲(chǔ)2KB。
- 中容量產(chǎn)品主存儲(chǔ)塊64-128KB,每頁1KB。系統(tǒng)存儲(chǔ)2KB。
- 大容量產(chǎn)品主存儲(chǔ)塊256KB以上,每頁2KB。系統(tǒng)存儲(chǔ)2KB。
主存儲(chǔ)器:該部分用來存放代碼和數(shù)據(jù)常數(shù)(如const類型的數(shù)據(jù))。對于大容量產(chǎn)品,其被劃分為256頁,每頁2K字節(jié)。注意,小容量和中容量產(chǎn)品則每頁只有1K字節(jié)。
信息塊:該部分分為2個(gè)小部分,其中啟動(dòng)成熟代碼,是用來存儲(chǔ)ST自帶的啟動(dòng)程序,用于串口下載代碼,當(dāng)B0接V3.3,B1接GND的時(shí)候,運(yùn)行的就是這部分代碼。用戶選擇字節(jié),則一般用于配置寫保護(hù)、讀保護(hù)等功能。
閃存存儲(chǔ)器接口寄存器:該部分用于控制閃存讀寫等,是整個(gè)閃存模板的控制機(jī)構(gòu)。
在進(jìn)行內(nèi)部flash模仿eeprom時(shí)可以操作主存儲(chǔ)器部分的空間,程序代碼占一部分,留下一部分用于存儲(chǔ)你想要存儲(chǔ)的信息,只是模擬的eeprom的讀寫操作還是可以遵循flash的操作方法,另外還需要注意stm32閃存操作的流程注意事項(xiàng)
FLASH_Unlock();//解鎖
FLASH_ClearFlag(FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPRTERR);//清楚標(biāo)志
FLASH_ErasePage(0x8002000);//擦除
while(count < 5)
{
FLASH_ProgramHalfWord((0x8002000 +count*2),data[count]); //flash 為一個(gè)字節(jié)存儲(chǔ),16位數(shù)據(jù)必須地址加2
count++;
深圳穎特新科技作為【華邦代理商】,公司擁有穩(wěn)定的進(jìn)貨渠道,貨源直接、充足,信譽(yù)第一,貨真價(jià)實(shí),優(yōu)質(zhì)服務(wù),公平交易,取信于客戶,向廣大客戶提供價(jià)格合理的優(yōu)質(zhì)產(chǎn)品。想了解更多關(guān)于Winbond 系列的技術(shù)資料,請咨詢 QQ:83652985
編輯:simon 最后修改時(shí)間:2019-07-07