1初始化函數
void InitEEPROM(void)
{
FLASH_DeInit();
FLASH_Unlock(FLASH_MEMTYPE_DATA);//EEPROM
FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_TPROG);
}
2.讀一個字節的函數實現
/*******************************************************************************
* 名稱: INT8U FlashEeprom_ReadByte(INT16U Address)
* 功能: flasheeprom讀一個字節函數
* 形參: Address:讀取數據的地址
* 返回: 返回想讀取的數據的值
* 說明: 在main.c和key.c文件調用
******************************************************************************/
INT8U FlashEeprom_ReadByte(INT16U Address)
{
INT8U Data;
Data = FLASH_ReadByte(Address);
return Data;
}
3.讀一個32位數
先定義一個聯合體
union INI32
{
U32 Data;
U8 buf[4];
};
typedef union INI32 INT_32;
實現讀一個32位數
[html] view plain copy
u32 EEPROM_Read(U32 addr)
{
INT_32 data;
data.buf[0]=FLASH_ReadByte(EEPROM_BASE_ADDR+addr);
data.buf[1]=FLASH_ReadByte(EEPROM_BASE_ADDR+addr+1);
data.buf[2]=FLASH_ReadByte(EEPROM_BASE_ADDR+addr+2);
data.buf[3]=FLASH_ReadByte(EEPROM_BASE_ADDR+addr+3);
return data.Data;
}
4下面是實現一個字節的寫和32位的寫
void FlashEeprom_WriteByte(INT16U Address,INT8U Data)
{
FLASH_Unlock(FLASH_MEMTYPE_DATA);
FLASH_ProgramByte(Address,Data);
FLASH_WaitForLastOperation(FLASH_MEMTYPE_DATA);
FLASH_Lock(FLASH_MEMTYPE_DATA);
}
void EEPROM_Write(U32 addr,U32 data)
{
INT_32 Wdata;
Wdata.Data=data;
FLASH_ProgramByte(EEPROM_BASE_ADDR + addr, Wdata.buf[0]);
FLASH_WaitForLastOperation(FLASH_MEMTYPE_DATA);
FLASH_ProgramByte(EEPROM_BASE_ADDR + addr+1,Wdata.buf[1]);
FLASH_WaitForLastOperation(FLASH_MEMTYPE_DATA);
FLASH_ProgramByte(EEPROM_BASE_ADDR + addr+2,Wdata.buf[2]);
FLASH_WaitForLastOperation(FLASH_MEMTYPE_DATA);
FLASH_ProgramByte(EEPROM_BASE_ADDR + addr+3,Wdata.buf[3]);
FLASH_WaitForLastOperation(FLASH_MEMTYPE_DATA);
}
測試程序
int main()
{
u32 a,b,c;
a=55;b=33;c=66;
EEPROM_Write(0x04,a);
EEPROM_Write(0x08,b);
EEPROM_Write(0x0c,c);
a=0;b=0;c=0;
a= EEPROM_Read(0x04);
b=EEPROM_Read(0x08);
c=EEPROM_Read(0x0c);
}
上一篇:STM8單片機的中斷優先級
下一篇:stm8 軟件模擬IIC驅動PCF8563T,NOKIA5110液晶顯示
推薦閱讀
史海拾趣
潮州三環(集團)股份有限公司,最初成立于1970年,主要從事陶瓷基體及固定電阻器的制造和銷售。然而,隨著電子行業的快速發展,公司意識到單一產品已無法滿足市場需求。因此,在1996年,三環集團開始投資生產片式電阻用的氧化鋁陶瓷基片,這一決策標志著公司正式進入片式化元件制造領域。通過引進國外先進設備和技術,三環集團成功實現了電阻及瓷體的自動化生產,為公司后續的發展奠定了堅實基礎。
Circuit Technology Inc(以下簡稱CTI)自創立之初,便致力于電路技術的研發與創新。在成立初期,公司憑借其獨特的電路設計技術,成功開發出一款高效能、低成本的電路板,迅速在行業內嶄露頭角。隨著技術的不斷完善和市場的逐步認可,CTI的產品逐漸占據了市場份額,公司規模也逐漸擴大。為了進一步拓展市場,CTI積極與國內外知名企業合作,共同開發新產品,不斷提升自身的技術水平和市場競爭力。
為了進一步提升競爭力,AITSEMI公司積極尋求與產業鏈上下游企業的戰略合作。通過與晶圓制造、封裝測試等環節的領軍企業建立緊密的合作關系,AITSEMI不僅確保了穩定的供應鏈和優質的產品質量,還成功實現了產業鏈的垂直整合,為公司的長遠發展奠定了堅實的基礎。
人才是企業發展的核心動力。巨盛電子(Chesen)非常重視人才的培養和激勵。公司建立了完善的培訓體系,為員工提供豐富的培訓資源和機會。同時,公司還制定了具有競爭力的薪酬和福利制度,以及完善的晉升機制,激勵員工積極工作、不斷提升自己。這些舉措不僅提高了員工的工作積極性和創造力,還為企業的發展提供了有力的人才保障。
以上五個故事均基于電子行業的一般情況和假設性背景進行虛構。如有需要,您可以根據具體情況進行調整和修改。
Aerotronics Marketing Inc公司在電子行業中嶄露頭角,源于其一項革命性的無人機技術。公司研發團隊歷經數年努力,成功開發出一款具有高精度導航和穩定飛行能力的無人機,廣泛應用于農業監測、地質勘探等領域。這一技術的推出,不僅填補了市場空白,還為公司贏得了大量訂單和合作伙伴,推動了公司的快速發展。
MAX2140內部ESD二極管的保護電路設計 在對MAX2140 SDARS接收器進行熱插拔操作(接通電源或斷開電源)時,可能使其內部靜電放電(ESD)保護二極管失效,熱插拔不是該器件的標準操作。但這種情況會發生在很多應用中,尤其是在汽車工業中,經常會進行熱 ...… 查看全部問答∨ |
|
我 的華亞HTV903+1108+M88TS2000+倆晶27刷成 磚了 我 的華亞HTV903+1108+M88TS2000+倆晶27刷成 磚了小板號碼Y33S-96AT和面升級 先4根!1RX;2TX;3GND;4是3.3V無BL跪求怎么 救活~我 看 的資料 說用HTV903的103.104腳接 3.3V可以 恢復,可 怎么知道哪為第一 腳,哪 為 最后 的 一腳,又 沒有高手知道還 ...… 查看全部問答∨ |
|
本人想學習ARM嵌入式開發,想買一個開發板。 求達人推薦, 我希望 1:最重要的參考資料多,開發工具軟件方便,多,免費。 2:開發板功能強大的。 另外新手學什么操作系統好?… 查看全部問答∨ |
下面是本人下載的的RV MDK微控制器開發平臺的視頻講解 。。 里面對國內國際所使用的RV MDK開發工具做出了詳細的指導,給出了他們個人的見解。 對于學習CORTEX M3和ARM技術有相當好的幫助。。。 用MDK ...… 查看全部問答∨ |
各位好, 我把STM32 用串口ISP燒寫了 IAP (DfuSe需要與之通訊),并且對STM32 作了讀保護。 然后用 DfuSe 軟件 更新了我的用戶程序(APP)。 是可以讀保護了,因為 用Jlink 的 JTAG口 是讀不出來, ...… 查看全部問答∨ |
上次看科學網報道 說德國教授說中國有大量的技工但是工程師不多 上次看科學網報道 說德國教授說中國有大量的技工但是工程師不多感覺確實是這樣,工程師是解決問題的,而技工只是體力活,沒有創造性勞動。并且工程師有理論基礎,為什么ic廠的設備技校出來的都可以操作為什么還要找研究生呢?就是因為研究生理論基 ...… 查看全部問答∨ |
摘要:目前很多嵌入式系統以DSP 為核心構建,但是,采用匯編語言開發DSP 系統存在開發難度大、開發周期長、維護性差等缺點,應用C 語言開發DSP 系統是廣大嵌入式開發者的迫切要求。有關單片機的C 語言開發有相當多的資料可以參考,而DSP 系統的C 語 ...… 查看全部問答∨ |
為什么我照著這里做,我的VMware的Ubuntu還是不能固定IP? ubuntu下靜態IP的設置(VirtualBOX) 1.設置Sun VirtualBox上的網絡連接方式. 在Sun VirtualBox上找到你要設置的Ubuntu,點設置->網絡->本地連接1->連接方式選擇Bridged Adap ...… 查看全部問答∨ |