stm32f407zgt6的flash有1M容量,總共分為11個扇區,每個扇區的地址和大小如下所示
#define ADDR_FLASH_SECTOR_0 ((u32)0x08000000) //扇區0起始地址, 16 Kbytes
#define ADDR_FLASH_SECTOR_1 ((u32)0x08004000) //扇區1起始地址, 16 Kbytes
#define ADDR_FLASH_SECTOR_2 ((u32)0x08008000) //扇區2起始地址, 16 Kbytes
#define ADDR_FLASH_SECTOR_3 ((u32)0x0800C000) //扇區3起始地址, 16 Kbytes
#define ADDR_FLASH_SECTOR_4 ((u32)0x08010000) //扇區4起始地址, 64 Kbytes
#define ADDR_FLASH_SECTOR_5 ((u32)0x08020000) //扇區5起始地址, 128 Kbytes
#define ADDR_FLASH_SECTOR_6 ((u32)0x08040000) //扇區6起始地址, 128 Kbytes
#define ADDR_FLASH_SECTOR_7 ((u32)0x08060000) //扇區7起始地址, 128 Kbytes
#define ADDR_FLASH_SECTOR_8 ((u32)0x08080000) //扇區8起始地址, 128 Kbytes
#define ADDR_FLASH_SECTOR_9 ((u32)0x080A0000) //扇區9起始地址, 128 Kbytes
#define ADDR_FLASH_SECTOR_10 ((u32)0x080C0000) //扇區10起始地址,128 Kbytes
#define ADDR_FLASH_SECTOR_11 ((u32)0x080E0000) //扇區11起始地址,128 Kbytes
讀取一個字函數:
u32 STMFLASH_ReadWord(u32 faddr)
{
return *(vu32* )faddr; //將地址轉換成指針類型,再取值
}
讀取N個字到數組中
void STMFLASH_Read(u32 ReadAddr,u32 *pBuffer,u16 NumToRead)
{
u16 i;
for(i=0;i pBuffer[i]=STMFLASH_ReadWord(ReadAddr); ReadAddr+=4;//以字的形式讀取,每次地址加4 } } 寫數據到flash void STMFLASH_Write(u32 WriteAddr,u32 *pBuffer,u16 NumToWrite) { FLASH_Status status=FLASH_COMPLETE; //flash狀態 u32 endaddr=WriteAddr+4*NumToWrite; //寫入數據的結束地址 if(WriteAddr FLASH_Unlock(); 解鎖flash FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGAERR | FLASH_FLAG_WRPERR);//清除標志位 FLASH_DataCacheCmd(DISABLE); //flash擦除期間,禁止緩存數據 status=FLASH_EraseSector(STMFLASH_GetFlashSector(WriteAddr),VoltageRange_3); //擦除地址所在扇區,并返回狀態 if(status==FLASH_COMPLETE) { while(WriteAddr if(FLASH_ProgramWord(WriteAddr,*pBuffer)!=FLASH_COMPLETE) //寫入數據 { break; } WriteAddr+=4; pBuffer++; } } FLASH_DataCacheCmd(ENABLE); 打開數據緩存 FLASH_Lock();上鎖 } 一般使用stm32自帶flash存儲的都是一次寫入的固定只讀數據,1是flash壽命不行,2是flash容量比較大,在擦除扇區時,數據無法保存,本例程中使用的是字形式進行讀取,也可以改成半字或其他形式。 源碼在這我的github;借鑒正點原子
上一篇:Huawei_LiteOS——STM32F103+Wifi/lwm2m連接OceanConnect平臺
下一篇:STM32——EEPROM
推薦閱讀
史海拾趣
90年代初期,“General Microcircuits”敏銳地捕捉到市場對定制化半導體解決方案的需求增長。公司迅速調整戰略,成立專門的定制化服務部門,為客戶提供從需求分析、設計開發到生產測試的全流程定制化服務。這種以客戶為中心的服務模式贏得了眾多客戶的青睞,尤其是在通信、汽車電子等高端應用領域,公司憑借定制化的高性能芯片解決方案占據了重要的市場份額。
隨著企業規模的擴大,Adamant Co Ltd逐漸意識到社會責任的重要性。公司積極參與公益事業,為社會做出貢獻。同時,公司還注重可持續發展,通過采用環保材料和生產工藝、降低能耗等方式,實現綠色生產。這些舉措不僅提升了公司的社會形象,也為公司的長期發展注入了新的活力。
這些故事雖然基于虛構的Adamant Co Ltd公司,但其中所描述的挑戰、機遇和策略在電子行業中是普遍存在的。通過這些故事,我們可以對電子行業企業的發展過程有一個大致的了解。
人才是企業發展的根本。國光新業深知這一點,因此始終注重人才的引進與培養。公司推出了“國新力”人才計劃專項,構建了一支優秀人才梯隊。目前,企業的技術團隊中科技人員占比超過30%,其中擁有工程師以上職稱的比例更是超過六成。這些高素質的人才為公司的技術創新與產品研發提供了源源不斷的動力。
面對不斷變化的市場環境和客戶需求,Datapro International Inc公司始終保持著對創新的追求。他們不斷投入研發資源,推動新技術和新產品的不斷涌現。同時,他們還積極關注行業趨勢和客戶需求的變化,以便及時調整自己的發展戰略和業務模式。
在未來的發展中,Datapro International Inc公司將繼續秉承“創新、質量、服務”的理念,致力于為客戶提供更加卓越的產品和服務。同時,他們也將積極探索新的市場機會和商業模式,以實現更加持續、穩健的發展。
請注意,以上故事均為虛構內容,旨在展示一個電子行業公司可能的發展歷程和故事。如需了解Datapro International Inc公司的真實歷史和發展故事,請查閱相關官方資料或行業報告。
CIRCUITCO公司自創立之初,就致力于電子電路技術的研發。在某一時期,公司投入大量資源研發新型高性能電路板。經過數年的努力,團隊終于成功開發出一款具有更高集成度、更低能耗的電路板。這一突破不僅提升了公司的技術實力,也使其在市場上獲得了顯著的競爭優勢。隨著這款新產品的推出,CIRCUITCO公司的業績迅速攀升,成為行業內的佼佼者。
在數字化時代,通信技術的更新換代速度極快。為了保持競爭優勢,Black Box不斷投入研發,推出了一系列創新產品和技術。例如,公司研發了一款智能網絡管理平臺,能夠實時監控網絡狀態并進行故障預警。這一技術創新大大提高了網絡的穩定性和安全性,贏得了客戶的廣泛好評。
如今的主板不僅僅只是集成聲卡,網卡也變成主板不可缺少的一部分了(顯卡沒有普遍集成有它特殊的原因——人們對聲卡和網卡性能的要求遠遠低于對顯卡的要求)。 把網卡集成到主板上的做法從i810時代就初見端倪,特別是隨著現在ADSL和各種寬帶 ...… 查看全部問答∨ |
|
很久沒上論壇了啊,最近一段時間太忙,今天上了下,發現人氣還是很火,真的不錯,現在很多的論壇,qq群雖然都很多人,但是討論的太少,交流也有限。(不知道是不是人人都不愛說話的原因) 我支持我們這個論壇,希望能一直這么熱鬧下去,和大家一起 ...… 查看全部問答∨ |
|
Creating Schematic Symbols in OrCAD Capture.pdf Creating Schematic Symbols in OrCAD Capture.… 查看全部問答∨ |