STM32 有大量FLASH讀寫時的注意事項

2021-10-07 02:23:16 字數 334 閱讀 2550

在stm32程式設計手冊中,可以知道:在進行寫或擦除操作時,不能進行**或資料的讀取操作。

比如:你在寫flash期間有接收串列埠資料,很有可能會丟串列埠資料。

因為比較耗時,所以,在寫資料時,cpu不會執行其他操作。

簡單說:在寫flash時,cpu 不能取指令,導致中斷得不到及時響應,從而發生接收到的資料未及時讀走而被覆蓋的現象。

遇到這種情況,解決的辦法:使用dma。dma不需要cpu干預,一旦 usart 有資料接收到,由 dma 負責將其傳輸至迴圈緩衝區中。軟體定期檢測迴圈緩衝區中是否有接收到的資料,如果有則加以處理。

如果你的**會反覆讀flash,建議使用外部flash。

stm32 讀寫內部Flash

stm32的flash分為主儲存塊和資訊塊。主儲存塊用於儲存具體的程式 和使用者資料,資訊塊用於負責由stm32出廠是放置2kb的啟動程式 bootloader 和512b的使用者配置資訊區。主儲存塊是以頁為單位劃分的,一頁大小為1kb。範圍為從位址0x08000000開始的128kb內。對flas...

STM32 讀寫內部Flash

flash模組組織 儲存器被組織為程式儲存器模組,資料eeprom模組和資訊塊。程式儲存器塊分為4 kb的扇區,每個扇區都是進一步分成16頁,每頁256位元組。該操作用於擦除程式儲存器中的頁面 64個字 要做到這一點 解鎖flash pecr暫存器 1.將pekey1 0x89abcdef寫入程式設...

STM32學習筆記 FLASH讀寫

stm32的flash除了可以燒寫如程式外,還可以供給使用者做儲存器,儲存引數用,但是要注意的是,flsah的擦寫次數是有限制的,10萬次。stm32f1系列微控制器核心是cortext m3系列的,其儲存器的對映是按照cortext m3的標準設計的,如下圖。從上圖可看出最下main的512m是分...