#ifndef _MCU_FLASH_H_
#define _MCU_FLASH_H_
#include // STM32f103C8T6 64KB FLASH,20KB RAM,1個扇區1KB,程序起始0x8000000 #define FLASH_START_ADDR ((uint32_t)0x8000000) #define FLASH_END_ADDR ((uint32_t)(0x8000000 + FLASH_SECTOR_NUM * FLASH_SECTOR_SIZE)) #define FLASH_SECTOR_NUM 128 // 扇區數量 #define FLASH_SECTOR_SIZE 1024 // 扇區大小1KB typedef enum { FLASH_FAILURE = 0, FLASH_SUCCESS, } flash_status_t; //=========================================================================== flash_status_t FlashErase(uint32_t addr, uint8_t count); uint32_t FlashWrite(uint32_t addr, uint8_t *buffer, uint32_t length); uint32_t FlashRead(uint32_t addr, uint8_t *buffer, uint32_t length); #endif /* _MCU_FLASH_H_ */ #include "mcu_flash.h" #include #include "stm32f10x_flash.h" // addr:地址 count:塊數量 flash_status_t FlashErase(uint32_t addr, uint8_t count) { uint8_t i; FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR); for(i = 0; i < count; ++i) { if(FLASH_ErasePage(addr + i * FLASH_SECTOR_SIZE) != FLASH_COMPLETE) { return FLASH_FAILURE; } } FLASH_Lock(); return FLASH_SUCCESS; } uint32_t FlashWrite(uint32_t addr, uint8_t *buffer, uint32_t length) { uint16_t i, data = 0; FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR); for(i = 0; i < length; i += 2) { data = (*(buffer + i + 1) << 8) + (*(buffer + i)); if(FLASH_ProgramHalfWord((uint32_t)(addr + i), data) != FLASH_COMPLETE) { return i; } } FLASH_Lock(); return length; } uint32_t FlashRead(uint32_t addr, uint8_t *buffer, uint32_t length) { memcpy(buffer, (void *)addr, length); return length; }
上一篇:STM32f103 —— can通信
下一篇:STM32 —— 多路DAC(輸出電壓和正弦波)
推薦閱讀
史海拾趣
在快速發展的過程中,CTC Coils Ltd公司始終注重企業文化建設和團隊建設。公司倡導創新、務實、高效的企業精神,鼓勵員工勇于創新、追求卓越。同時,公司還注重員工的培訓和成長,為員工提供廣闊的發展空間和良好的職業晉升通道。這些舉措使得公司凝聚力不斷增強,為公司的長遠發展奠定了堅實的基礎。
請注意,這些故事是虛構的,旨在展示一個電子行業公司可能經歷的發展路徑和關鍵階段。實際情況可能因公司具體情況和市場環境的不同而有所差異。
Comtech AHA Corp自創立之初,便以技術創新為核心競爭力。公司研發團隊不斷攻克技術難關,推出了一系列具有自主知識產權的高性能電子產品。其中,一款具有自主知識產權的通信芯片在市場上取得了巨大成功,為公司帶來了可觀的收益。隨著技術的不斷迭代升級,Comtech AHA Corp逐漸在電子行業中占據了一席之地。
進入21世紀后,Eagle-Picher公司迎來了新的發展機遇。2017年,OMGroup斥資1.7億美元收購了Eagle-Picher公司,這一舉措為Eagle-Picher注入了新的資金和資源。在新的資本支持下,Eagle-Picher加大了在電池技術領域的研發投入,不斷推出新的產品和解決方案。同時,公司也積極拓展國際市場,與全球多家知名企業建立了合作關系。這些新的發展機遇為Eagle-Picher的未來發展奠定了堅實的基礎。
隨著產品質量的提升和技術的不斷創新,寶乘公司開始積極拓展市場。公司與多家知名企業建立了戰略合作關系,共同推動半導體功率器件在LED照明、電源、消費類電子等多個領域的應用。同時,寶乘還積極參加國內外電子行業的展覽和交流活動,與同行交流學習,不斷提升自身的競爭力。
AXTAL公司誕生于2003年,是由物理學家兼電子工程師Bernd Neubig創立的。Bernd Neubig從之前的TELEQUARZ公司分離出來,帶著豐富的石英晶體行業經驗和對未來技術的獨到見解,創立了AXTAL。公司的員工團隊擁有超過80年的石英晶體行業累積經驗和專業知識,為公司的起步奠定了堅實的基礎。
高頻電子成立于1961年(也有資料顯示為1962年),最初主要根據美國政府的最終使用合同,生產專有的精密時間和頻率技術產品。在20世紀90年代中期,公司敏銳地捕捉到市場變化,開始從一家國防合同制造商轉變為面向商業和政府最終用途的高科技供應商。這一戰略轉型不僅拓寬了公司的業務范圍,還為公司帶來了更多的市場機遇和增長潛力。
監控系統故障的解決方法(1) 1. 電源的不正確引發的設備故障。電源不正確大致有如下幾種可能:供電線路或供電電壓不正確、功率不夠(或某一路供電線路的線徑不夠,降壓過大等)、供電系統的傳輸線路出現短路、斷路、瞬間過壓等。特別是因供電錯 ...… 查看全部問答∨ |
我們來分析一下紅外探測報警器主要有那些原因會造成誤報、漏報。目前報警系統出現誤報、漏報主要有以下幾個方面原因。 無線探測器抗干擾能力羞表現為同頻干擾容易造成誤報、漏報; 紅外探測器對入侵行為判斷力不夠準確造成誤報、漏報; 紅外探測 ...… 查看全部問答∨ |
監控系統的接地與防雷接地有矛盾么?有!!! 有的防雷器產品廠家明確主張“到處接地”,特別指出攝像機要接地;為了防雷制造了“多點接地”,那地環路問題怎么辦? 監控系統的接地要求是:系統(主機)單點接地——攝像機不接地,那防雷又怎么 ...… 查看全部問答∨ |
我設計的是s3c2410的板,通過jtag可以檢測到CPU和NAND FLASH,通過NAND FLASH燒寫vivi,可以正常燒進去;但是問題是重啟時在DNW沒有任何顯示,好像進不去vivi… 查看全部問答∨ |
尋找一顆芯片,一個USB轉成4個RS-232的芯片,FT4232還沒量產,其他還有什么類型的芯片啊! 尋找一顆芯片,一個USB轉成4個RS-232的芯片,FT4232還沒量產,其他還有什么類型的芯片啊!急!11111111111… 查看全部問答∨ |
請問10 pin miniUSB接口常用于音頻的引腳是怎么定義的? 10 pin miniUSB接口比較多,它有上下兩排線,其中一排用于USB傳輸,另一排5根線常用來作為耳麥。 我想問一下: 10 pin miniUSB里用于耳麥的引腳是哪些?怎么定義的? … 查看全部問答∨ |
特斯拉線圈的什么原理可以使全世界無線輸電,有電路圖沒?請教下,查資料時沒有看懂,呵。。。謝謝!不怕到時,周圍全是人造閃電嗎 [ 本帖最后由 secondlife110 于 2013-3-8 18:28 編輯 ]… 查看全部問答∨ |
|
本帖最后由 paulhyde 于 2014-9-15 03:09 編輯 我們用ad9851模塊,按原帶電路連接,用它原帶程序,但是沒有波形,不知道怎么回事,求知道的人幫幫忙說下原理。謝謝 … 查看全部問答∨ |
現在安卓手機很流行,弄個客戶端訪問怎么樣? 電子工程師必備神器有木有!! [ 本帖最后由 qinkaiabc 于 2013-10-10 10:13 編輯 ]… 查看全部問答∨ |