青風手把手教你學藍牙14flash讀寫_第1頁
青風手把手教你學藍牙14flash讀寫_第2頁
青風手把手教你學藍牙14flash讀寫_第3頁
青風手把手教你學藍牙14flash讀寫_第4頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

-------------作者:青 青 技術 硬件平臺:青云QY-nRF51822開發(fā) 藍牙BLE接收數(shù)據(jù)內(nèi)部FLASH 3應用與調(diào) 測 青風帶你玩藍牙nRF51822系列 作者 青風電子社作者 青:淘寶店硬件平臺:青云QY-nRF518222.2藍牙BLEFLASH讀很多朋友希望能夠在協(xié)議棧的狀態(tài)下對FLASHNRF51822BLE協(xié)議棧實際上是提供了FLASH庫函數(shù),采用這些庫函數(shù),能夠很方便的在帶協(xié)議棧的BLE工程中進行flash操作。本章將主要講述如何采用FLASH寫與讀。1:nRF51822藍牙內(nèi)部FLASH處理函數(shù)在工程樹中,專門提供了一個庫函數(shù)pstorage.c文件為FLASH編寫的 pstorage_inituint32_tuint32_t pstorage_handle_t 本函數(shù)用于的持久性接口功能@參數(shù) 模塊的參@參數(shù) 標識符來標識的永久內(nèi)存塊時成 pstorage_handle_t*函數(shù)來獲得你要操作的block_num(申請的block數(shù)量)@參數(shù) 在時收到的基塊ID@參數(shù) 塊編號,第一個塊編號為零@參數(shù) 當API成功要求的塊編號塊標識符 uint8_t* uint8_t uint32_tuint32_tpstorage_load(uint8_t 上面三個函數(shù)就是內(nèi)部FLASH 包含數(shù)據(jù)源地址 處理函數(shù)使用注意FLASH處理函數(shù)storeupdataflash數(shù)一個標志位FLAG,標志上次操作以及完成,避免發(fā)生數(shù)據(jù)堵塞錯誤。2:函數(shù)編寫FLASH操作初始化FLASH讀寫,同時申請一個voidvoid{ pstorage_module_param_tmodule_param;module_param.block_count1;申請一個塊module_param.cb=my_cb;//反饋函數(shù) FLASHerr_code=pstorage_register(&module_param,&block_id);// ID}4:一個FLASH其中反饋函數(shù),這里必須寫出,回調(diào)返回狀態(tài)機到底是哪一種my_cbOP_CODE判斷出來狀志位,決定是否繼續(xù)FLASH操作。staticstaticvoidmy_cb(pstorage_handle_t*handle,uint8_top_code,uint32_tresult,uint8_t*p_data,uint32_tdata_len){{caseif(result=={{}{//Updateoperation}}上拋給app相應的sys_evt事件(類似sd會上拋給APPBLE的事件)。同時因為pstorage需要獲得sys_evt(flashstaticstaticvoid{uint32_t//InitializeSoftDevice.//EnableBLEstack.#if(defined(S130)||defined(S132))err_code===//SubscribeforBLE} 非常特殊,它決定了協(xié)議棧下操作FLASH是否成功:staticstaticvoidsys_evt_dispatch(uint32_t{}FLASH讀寫驗并且申請了操作地址?,F(xiàn)在我們需要在發(fā)送數(shù)據(jù)過來的時候將數(shù)據(jù)更新到flash中。那么在ble_nus.c中的ble_nus_on_ble_evt函數(shù)中有對寫事件的處理。處理是在函數(shù)on_write中做的,我們在這個函數(shù)中添加自己的代碼:voidvoid{uint32_talign(4) uint8_tread[16]; err_code=pstorage_block_identifier_get(&m_data_num_handle,0,&block_handle);}主函數(shù)編主函數(shù)寫一個測試函數(shù),用于把我們寫入到FLASH中的數(shù)據(jù)主函數(shù)寫一個測試函數(shù),用于把我們寫入到FLASH中的數(shù)據(jù)主函數(shù)中直接調(diào)用flash_init();然后調(diào)用flash_test()函數(shù)FLASH內(nèi)的intint{uint32_t //Initialize. err_code=for(;;){}3應用與 連接好后首先協(xié)議棧,本例使用的協(xié)議棧為S110.8.0版本,位于文件夾第4部打開 進行,可以參考軟件篇介紹。如圖所示,起始地址96K,首先整片擦除,后協(xié)議棧完后可以工

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論