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