




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、艾克姆科技nRF52832 開(kāi)發(fā)指南-下冊(cè)基于 Nordic 藍(lán)牙低功耗/2.4GHz Soc-nRF52832艾克姆科技飛宇團(tuán)隊(duì)2018.11.17:https:/a: 艾克姆科技發(fā)布本文檔技術(shù)支持:強(qiáng)光手電本文檔以艾克姆科技 IK-52832DK 開(kāi)發(fā)板為硬件平臺(tái),BLE 開(kāi)發(fā),從基本概念和新建 BLE 工程模板開(kāi)始,一步步講解藍(lán)牙 BLE 程序框架及功能的實(shí)現(xiàn)目錄第一章:藍(lán)牙BLE 技術(shù)簡(jiǎn)介91.2.學(xué)習(xí)目的9藍(lán)牙技術(shù)的...2.5.什么是藍(lán)牙低功耗(BLE)9藍(lán)牙版本及 4.0 和BLE 的關(guān)系10藍(lán)牙的三種標(biāo)志和設(shè)備類型11BLE 的體系結(jié)構(gòu)12BLE
2、廣播、掃描和連接...3.廣播掃描連接..Profile、Service 、Characteristic 和 UUID17第二章:新建BLE 工程模板191.2.學(xué)習(xí)目的19新建BLE 工程模板..2.5.工程目錄19建立工程目錄、拷貝庫(kù)文件20新建工程20添加需要的庫(kù)文件25新建 main.c 文件并添加到工程。283.配置工程30..3.5.配置“Target”選項(xiàng)卡30配置“Output”選項(xiàng)卡31配置“C/C+”選項(xiàng)卡32配置“Linker”選項(xiàng)卡33配置“Debug”選項(xiàng)
3、卡344.協(xié)議?!癟arget”3..新建協(xié)議?!癟arget”36配置“Output”選項(xiàng)卡37配置“Debug”選項(xiàng)卡38防止協(xié)議棧丟失39第三章:實(shí)現(xiàn)BLE 基本功能4.學(xué)習(xí)目的41實(shí)現(xiàn)的功能41BLE 程序結(jié)構(gòu)42編寫(xiě)代碼434.1.日志打印4...Log 功能作用43加入 Log46Log 配置(UART 作為輸出終端)47Log 配置(RTT 作為輸出終端)484.2.初始化 APP 定時(shí)器524.2.1.APP 定時(shí)器作用5.2.3.加入APP 定時(shí)器初始化代碼53本節(jié)留下的
4、問(wèn)題534.3.指示燈初始化5..3.指示燈作用54編寫(xiě)指示燈初始化代碼54本節(jié)留下的問(wèn)題5.初始化和運(yùn)行電源管理55BLE 協(xié)議棧初始化5..3.初始化步驟56配置低頻時(shí)鐘62BLE 協(xié)議棧使能和內(nèi)存配置644.6.配置 GAP 參數(shù)6...4.6.5.GAP 作用67GAP.68GAP 安全模式70GAP 服務(wù)71代碼編寫(xiě)80.GATT 初始化82廣播初始化8..3.配置廣播數(shù)據(jù)和模式83編寫(xiě)代碼85本節(jié)留下的問(wèn)題874.9.服
5、務(wù)初始化8.9.2.初始化排隊(duì)寫(xiě)入模塊87本節(jié)留下的問(wèn)題884.10.連接參數(shù)協(xié)商初始化8.0.3.連接參數(shù)協(xié)商88連接參數(shù)協(xié)商模塊的參數(shù)和.89編寫(xiě)代碼92.啟動(dòng)廣播93實(shí)驗(yàn)步驟94第四章:全面掌握廣播981.2.3.學(xué)習(xí)目的98基本概念和流程98廣播數(shù)據(jù)包報(bào)文結(jié)構(gòu)9...前導(dǎo)100接入地址100報(bào)頭100長(zhǎng)度102數(shù)據(jù)(AdvData)102校驗(yàn)1044.5.廣播可以包含的數(shù)據(jù)104設(shè)備地址1055.1.公共地址1065.2.隨機(jī)地址10..3.隨機(jī)
6、靜態(tài)地址107不可私有地址110可私有地址1135.3.隨機(jī)靜態(tài)地址讀寫(xiě)實(shí)驗(yàn)1.3.2.代碼編寫(xiě)113實(shí)驗(yàn)步驟1145.4.設(shè)置私有地址實(shí)驗(yàn)1.4.2.代碼編寫(xiě)115實(shí)驗(yàn)步驟1166.本地設(shè)備名稱1.使用本地名稱的步驟118廣播中加入設(shè)備名稱實(shí)驗(yàn)1.2.2.代碼編寫(xiě)119實(shí)驗(yàn)步驟1207.外觀1.加入外觀的步驟122廣播中加入外觀實(shí)驗(yàn)1.2.2.代碼編寫(xiě)123實(shí)驗(yàn)步驟1258.9.Flags126等級(jí)12.等級(jí)的定義127等級(jí)實(shí)驗(yàn)127廣播中加入.2.2.代
7、碼編寫(xiě)127實(shí)驗(yàn)步驟12810.服務(wù)的 UUID129.10.3.UUID129加入服務(wù)UUID 的步驟130廣播中加入 UUID 列表實(shí)驗(yàn)1330.3.2.代碼編寫(xiě)133實(shí)驗(yàn)步驟13411.服務(wù)數(shù)據(jù)136服務(wù)數(shù)據(jù)的定義136加入服務(wù)UUID 的步驟136加入服務(wù)數(shù)據(jù)實(shí)驗(yàn)138...代碼編寫(xiě)138實(shí)驗(yàn)步驟13912.從設(shè)備連接間隔范圍140.12.3.從設(shè)備連接間隔范圍定義140加入從設(shè)備連接間隔范圍的步驟141廣播中加入從設(shè)備連接間隔范圍實(shí)驗(yàn)142.3.2.代碼編寫(xiě)143
8、實(shí)驗(yàn)步驟14413.廠商自定義數(shù)據(jù)145.13.3.廠商自定義數(shù)據(jù)的定義145加入廠商自定義數(shù)據(jù)的步驟145廣播中加入廠商自定義數(shù)據(jù)實(shí)驗(yàn)1473.3.2.代碼編寫(xiě)147實(shí)驗(yàn)步驟148第五章:創(chuàng)建定時(shí)任務(wù)150.學(xué)習(xí)目的150APP 定時(shí)器150使用APP 定時(shí)器151機(jī)創(chuàng)建定時(shí)任務(wù)實(shí)驗(yàn)15....1.6.添加需要的文件155頭文件和路徑設(shè)置155工程配置156代碼編寫(xiě)157硬件連接161實(shí)驗(yàn)步驟1615.BLE 應(yīng)用創(chuàng)建定時(shí)任務(wù)實(shí)驗(yàn)16..3.代碼編寫(xiě)162硬
9、件連接163實(shí)驗(yàn)步驟163第六章:實(shí)現(xiàn)一個(gè)標(biāo)準(zhǔn)的Profile1651.2.學(xué)習(xí)目的165配置文件、服務(wù)和特征16.2.3.Profile(配置文件)165Service(服務(wù))166Characteristic(特征) 和描述符1673.需求描述16. 170需求表和依據(jù)17.....7.廣播數(shù)據(jù)172廣播參數(shù)172首選連接參數(shù)和連接參數(shù)協(xié)商173GAP 服務(wù)173包含的服務(wù)174數(shù)據(jù)傳輸175皮膚接觸檢測(cè)狀態(tài)更新1784.代碼實(shí)現(xiàn)17...新建
10、文件和路徑設(shè)置178工程配置180廣播數(shù)據(jù)和廣播參數(shù)180首選連接參數(shù)和連接參數(shù)協(xié)商182GAP 服務(wù)183添加心率服務(wù)18...6.1.3.心率服務(wù)結(jié)構(gòu)體185心率服務(wù)初始化結(jié)構(gòu)體185定義心率服務(wù)實(shí)例186初始化心率服務(wù)1894.7.加入設(shè)備信息服務(wù)19..3.定義服務(wù)句柄變量196設(shè)備信息服務(wù)初始化結(jié)構(gòu)體196初始化設(shè)備信息服務(wù)1975.數(shù)據(jù)和傳感器接觸狀態(tài)更新199心率測(cè)量特征通知199傳感器接觸狀態(tài)更新204驗(yàn)證20.6.第十一章:固件更新(DFU)2097.1.學(xué)習(xí)目的209概述2091.1.
11、.DFU 功能的重要性209Nordic Secure DFU209相關(guān)術(shù)語(yǔ)、縮略詞2102.3.需要的工具軟件210操作步驟(詳細(xì)版)2.安裝 gcc-arm-none-eabi211安裝 MinGW2..3.安裝214配置環(huán)境變量216驗(yàn)證安裝是否。. 2.工程中加入 micro-ecc 源碼218生成 micro_ecc_lib_nrf52.lib2.4.2.生成步驟218該步驟問(wèn)題總結(jié)2203.5.安裝 python-2.72...安裝221
12、配置環(huán)境變量。224驗(yàn)證安裝是否。. 225該步驟問(wèn)題總結(jié)2263.6.安裝 pc-nrfutil 和生成 key22.6.2.安裝 pc-nrfutil226生成 private key 和 public key2273.7.編譯和燒寫(xiě) Bootloader22.7.2.編譯Bootloader228燒寫(xiě)B(tài)ootloader22.升級(jí)文件打包229執(zhí)行DFU23.9.2.首次無(wú)線DFU231再次無(wú)線DFU2334.代碼的燒寫(xiě)和合并23.生成 settings 和代碼的燒寫(xiě)235使用 mergehex 合并燒寫(xiě)23
13、65.BLE 串口透?jìng)髦屑尤隓FU 服務(wù)23..5.5.需要加入的文件和的頭文件238工程配置239使能 logs241需要增加的代碼241該步驟問(wèn)題總結(jié)246參考文獻(xiàn)247修訂歷史Revision Records日期Date版本Version編制Written By審核Checked By說(shuō)明Explanation2018.10.27A強(qiáng)光手電飛宇以 SDK15.2 為基礎(chǔ)編寫(xiě)B(tài)LE開(kāi)發(fā)。第一章:藍(lán)牙 BLE 技術(shù)簡(jiǎn)介1.學(xué)習(xí)目的1.本章的目的是為了讓讀者對(duì)低功耗藍(lán)牙技術(shù)有個(gè)大致的了解,尤其對(duì)于初次接觸低功耗藍(lán)牙的讀者,應(yīng)當(dāng)先對(duì) BLE 有一個(gè)總體的了解,熟悉
14、BLE 的一些常用概念,這些基本的概念對(duì)于后續(xù)的編程很重要。通過(guò)本章,讀者應(yīng)了解什么是單模和雙模、BLE 和藍(lán)牙 4.x 的區(qū)別以及藍(lán)牙 5.0 的三大特點(diǎn)等概念。2.2.藍(lán)牙技術(shù)的nl藍(lán)牙的創(chuàng)始人是瑞典愛(ài)立信公司。愛(ài)立信早在 1994 年就已進(jìn)行研發(fā)。1997 年,愛(ài)立信與其他設(shè)備生產(chǎn)商,并激發(fā)了他們對(duì)該項(xiàng)技術(shù)的濃厚。l1998 年 2 月,5 個(gè)大公司,包括愛(ài)立信、諾基亞、IBM、東芝及 Intel 組成了一個(gè)l特殊小組(SIG),他們共同的目標(biāo)是建立一個(gè)全球性的小范圍無(wú)線通信技術(shù),即現(xiàn)在的藍(lán)牙。藍(lán)牙技術(shù)是以 10 世紀(jì)的一位丹麥國(guó)王命名的?!八{(lán)牙(Bluetooth)”一詞來(lái)源于 10
15、世紀(jì)的丹麥國(guó)王Harald Blåtand(英文姓名為 HaroldnBluetooth)。這位國(guó)王將四分五裂的局面統(tǒng)一起來(lái)的行為,與這種傳輸技術(shù)將各種設(shè)備無(wú)線連接起來(lái),有相似的地方。為了紀(jì)念他,SIG 將的無(wú)線技術(shù)取名“藍(lán)牙”。2.1. 什么是藍(lán)牙低功耗(BLE)BLE 是藍(lán)牙低功耗的簡(jiǎn)稱(Bluetooh Low Energy)。藍(lán)牙低功耗(BLE)技術(shù)是低成本、短距離、可互操作的魯棒性無(wú)線技術(shù),工作在免就設(shè)計(jì)為超低功耗(ULP)無(wú)線技術(shù)。它利用許多智能l 低成本,低功耗。l 快速啟動(dòng),瞬間連接。最快 3ms 低延遲。l 傳輸距離的提高。的 2.4GHz ISM 射頻頻段。它從一
16、開(kāi)始最大限度地降低功耗。l 高安全性。使用 AES-128 加密算法進(jìn)行數(shù)據(jù)報(bào)加密認(rèn)證。藍(lán)牙低功耗在短距離無(wú)線通信領(lǐng)域占據(jù)著越來(lái)越重要的地位,在很多應(yīng)用場(chǎng)合均可見(jiàn)到藍(lán)牙低功耗的身影:l 醫(yī)療和健康設(shè)備,如血糖儀、數(shù)字血壓計(jì)、血?dú)庥?jì)、心率監(jiān)視器、數(shù)字體溫計(jì)等。l 運(yùn)動(dòng)休閑,如心率監(jiān)測(cè)儀、體溫計(jì)、計(jì)步器、節(jié)拍器、測(cè)高儀等。l 鼠標(biāo)、鍵盤(pán)、。l Beacons。l 智能家居,如燈光全性解決方案。、溫度、濕度、安全鎖、門(mén)窗的低功耗、高安2.2. 藍(lán)牙版本及 4.0 和 BLE 的關(guān)系藍(lán)牙技術(shù): (Bluetooth Special Interest Group, SIG),是藍(lán)牙規(guī)格版本及藍(lán)牙技術(shù)的管
17、理者,本身不負(fù)責(zé)具體的藍(lán)牙主要的版本:的設(shè)計(jì)和生產(chǎn)等。藍(lán)牙技術(shù)的發(fā)展經(jīng)歷了下面幾個(gè)1.2.3.藍(lán)牙 1.0:基本碼率,Basic Rate,BR。藍(lán)牙 2.0:增強(qiáng)碼率,Enhanced Data Rata,EDR。藍(lán)牙 3.0:引入全新的交替射頻技術(shù)(AMP:Alternate MAC/PHY),藍(lán)牙協(xié)議棧針對(duì)任一任務(wù)動(dòng)態(tài)地選擇正確射頻,通過(guò)瞬間使用消費(fèi)者設(shè)備中已存在的輔助無(wú)線電提供更快的吞吐量。藍(lán)牙 4.0 是第一個(gè)綜合性規(guī)范,其加入了全新的藍(lán)牙低功耗技術(shù),即藍(lán)牙 4.0 集三種規(guī)格于一體,最重要的特點(diǎn)就是省電,可以使一粒紐扣電池連續(xù)工作數(shù)年。4.圖 1-1:藍(lán)牙 4.0 技術(shù)規(guī)范藍(lán)牙 4
18、.0 包括三個(gè)子規(guī)范,即傳統(tǒng)藍(lán)牙技術(shù)、高速藍(lán)牙技術(shù)和新的藍(lán)牙低功耗技術(shù)。BLE是藍(lán)牙 4.0 的一部分。最常見(jiàn)的兩種藍(lán)牙規(guī)格:BR/EDR 和BLE。5.藍(lán)牙 4.2 提升了 BLE 數(shù)據(jù)傳輸速度,支持長(zhǎng)包傳輸,單個(gè)數(shù)據(jù)包最大可傳輸 255 個(gè)字節(jié)。同時(shí)了隱私保護(hù)程度。6.藍(lán)牙 5.0 相對(duì)于藍(lán)牙 4.2,具有 2 倍的數(shù)據(jù)速率、4 倍的覆蓋范圍和 8 倍的廣播能力。l 高速模式:支持 2Mbps 數(shù)據(jù)速率,實(shí)現(xiàn)了數(shù)據(jù)吞吐量翻倍。l 遠(yuǎn)距模式:通過(guò) 500kbps 和 125kbps 速率的全新編碼物理層 (PHY) 實(shí)現(xiàn)遠(yuǎn)距離覆蓋。l 廣播擴(kuò)展:藍(lán)牙 BLE 有 3 個(gè)廣播信道,之前的藍(lán)牙
19、BLE 版本中廣播載荷通過(guò)全部三個(gè)廣播通道進(jìn)行,藍(lán)牙 5.0 中這三個(gè)通道僅用于指針,顯示載荷的時(shí)間和地點(diǎn),廣播載荷僅在一個(gè)數(shù)據(jù)通道上傳輸一次。2.3. 藍(lán)牙的三種標(biāo)志和設(shè)備類型1.藍(lán)牙的三種標(biāo)志(Logo)為了更好地區(qū)分藍(lán)牙的版本,SIG 發(fā)布了三種標(biāo)志用于人們分辨這三個(gè)版本之間的區(qū)別和兼容性,圖 1-2:藍(lán)牙的三種標(biāo)志Bluetooth Smart Ready:適用于任何雙模藍(lán)牙 4.0 的電子,如蘋(píng)果公司4Sl及以后的和安裝了安卓 4.3 以上的系統(tǒng),并且藍(lán)牙支持 4.0 的。Bluetooth Smart:?jiǎn)文TO(shè)備,如智能手環(huán)。標(biāo)準(zhǔn)Bluetooth:傳統(tǒng)藍(lán)牙設(shè)備,如用于傳輸語(yǔ)音的藍(lán)牙
20、耳機(jī)。ll2.設(shè)備類型低功耗藍(lán)牙分為單模(Bluetooth Smart)和雙模(Bluetooth Smart Ready)兩種設(shè)備: 單模設(shè)備:只支持藍(lán)牙低功耗 (BLE),如用 nRF51822 開(kāi)發(fā)的藍(lán)牙設(shè)備即為單模設(shè)備, 單模設(shè)備對(duì)低功耗的要求很高。雙模設(shè)備:既支持傳統(tǒng)藍(lán)牙也支持藍(lán)牙低功耗,這兩種技術(shù)使用同一個(gè)射頻前端和天線,雙模設(shè)備一般都有足夠的供電能力,對(duì)低功耗的要求不高。ll圖 1-3:典型的單模和雙模設(shè)備兼容性l圖 1-4:?jiǎn)文:碗p模設(shè)備的兼容性雙模設(shè)備之間:可以通過(guò) LE 通信,也可以通過(guò)傳統(tǒng)藍(lán)牙通信;雙模設(shè)備和單模設(shè)備通過(guò) LE 通信;雙模設(shè)備和傳統(tǒng)藍(lán)牙通過(guò)傳統(tǒng)藍(lán)牙通信。
21、單模設(shè)備之間:通過(guò) LE 通信。傳統(tǒng)藍(lán)牙:通過(guò)傳統(tǒng)藍(lán)牙通信。單模設(shè)備和傳統(tǒng)藍(lán)牙:不能通信。lll2.4. BLE 的體系結(jié)構(gòu)藍(lán)牙低功耗包含三個(gè)部分:器、主機(jī)和應(yīng)用程序。圖 1-5:BLE 體系結(jié)構(gòu)1.l物理層(Physical Layer)調(diào)制方式:GFSK,高斯頻移鍵控。工作在 2.4GHz ISM 頻段。頻率范圍:2.400-2.4835 GHzISM 頻段:(Industrial Scientific Medical Band)主要是開(kāi)放給工業(yè)、科學(xué)和醫(yī)用 3 個(gè)主要ll機(jī)構(gòu)使用的頻段。ISM 頻段屬于無(wú)(Free License)頻段。2.4G ISM 頻段是唯一一個(gè)在所有都無(wú)需的頻段
22、,只需要遵守一定的即可。我們熟知的無(wú)線局域網(wǎng)、藍(lán)牙、ZigBee 等無(wú)線網(wǎng)絡(luò),均可工作在 2.4GHz ISM 頻段上。2.4G 被劃分為 40 個(gè)RF 信道(f=2402+k*2 MHz, k=0, ,39),信道間隔 2MHz,其中: 廣播信道:3 個(gè),固定。數(shù)據(jù)信道:37 個(gè),自適應(yīng)跳頻。無(wú)線速率:1Mbps、2Mbps。ll2.鏈路層(LL)鏈路層負(fù)責(zé)廣播、掃描、建立和維護(hù)連接,以及確保數(shù)據(jù)包按照正確的方式組織、正確地校驗(yàn)值和加密序列等。1)鏈路層狀態(tài)機(jī)圖 1-6:鏈路層狀態(tài)機(jī)鏈路層設(shè)備有 5 種狀態(tài):l 就緒態(tài):上電后,鏈路層進(jìn)入并保持就緒態(tài),直到接收到主機(jī)態(tài),處于其它狀 態(tài)下都可以
23、進(jìn)入到此狀態(tài)。令。狀態(tài)機(jī)的中心狀l 廣播態(tài):廣播報(bào)文和掃描響應(yīng)。l 掃描態(tài):偵聽(tīng)廣播設(shè)備。l 發(fā)起態(tài):發(fā)起連接。l 連接態(tài):唯一一個(gè)用到數(shù)據(jù)信道的狀態(tài),兩個(gè)設(shè)備只有在連接態(tài)中才能互相傳送數(shù)據(jù)。鏈路層可能同時(shí)存在多個(gè)鏈路,同時(shí)擁有多個(gè)成為主從機(jī)。的狀態(tài)機(jī),但是鏈路層永遠(yuǎn)不能同時(shí)鏈路層狀態(tài)機(jī)有助于我們清晰相關(guān)概念,如設(shè)備上電后,他不可能直接進(jìn)入到連接態(tài),必須由廣播態(tài)或發(fā)起態(tài)才能進(jìn)入到連接態(tài)。² 需要特別注意的是:這里說(shuō)的是鏈路層的狀態(tài)機(jī),而不是整個(gè)系統(tǒng)的。2)鏈路層信道圖 1-7: 鏈路層信道廣播信道:37 、38、39,對(duì)應(yīng)的中心頻率是 2402MHz,2426MHz,2480MHz。
24、廣播信道之間至少相差 24MHz。每次廣播,都會(huì)在 3 個(gè)信道上將廣播數(shù)據(jù)一次,這能有效地避免干擾,即使一個(gè)信道存在干擾,另外的信道也可以很好地工作,而三個(gè)信道同時(shí)的情況極少。擾² 為什么廣播信道是 3 個(gè),而不是?廣播信道越多,各個(gè)信道同時(shí)受到干擾的幾率越小性越強(qiáng)。但是廣播信道越多,發(fā)射數(shù)據(jù)占用的時(shí)間就越長(zhǎng),功耗也就越高。所以,在綜合考慮SIG 將廣播設(shè)定為 3 個(gè)。性和功耗的情況下,3.主機(jī)主機(jī)器接口(HCI)器接口HCI(Host controller interface)在 Host 和Controller 之間提供一個(gè)標(biāo)準(zhǔn)化的接口,該層可以由應(yīng)用程序接口 API 實(shí)現(xiàn)或者使
25、用硬件接口UART、SPI 或 USB 來(lái)。器通過(guò) HCI數(shù)據(jù)和給主機(jī),主機(jī)通過(guò)HCI命令和數(shù)據(jù)給器。4.l邏輯鏈路和適配協(xié)議(L2CAP)L2CAP 層向上層提供數(shù)據(jù)封裝服務(wù),從而使邏輯上端到端的數(shù)據(jù)通信。L2CAP 提供可復(fù)用,分割和重組的面向連接或者無(wú)連接的數(shù)據(jù)服務(wù)。L2CAP 數(shù)據(jù)包可l以達(dá)到 64K。L2CAP每個(gè) L2CAP 通道流控和重傳。5.安全管理層(SM)安全管理層 SM(Security Manager)提供配對(duì)和密鑰的分發(fā)。6.屬性協(xié)議(ATT)屬性協(xié)議(ATT)規(guī)定了怎樣去對(duì)端設(shè)備的數(shù)據(jù),數(shù)據(jù)在屬性服務(wù)器的“屬性”里,供屬性客戶端進(jìn)行讀寫(xiě)操作。7.通用屬性配置文件(G
26、ATT)通用屬性配置文件(GATT)建立在屬性協(xié)議的基礎(chǔ)上,GATT 通過(guò)使用 ATT 協(xié)議層定義了如何發(fā)現(xiàn)與使用服務(wù)、特征和描述符的標(biāo)準(zhǔn)方法。nl客戶端與服務(wù)器架構(gòu):GATT 定義了兩個(gè):服務(wù)器和客戶端。服務(wù)器:客戶端提供數(shù)據(jù)服務(wù),就是數(shù)據(jù)中心。客戶端:從服務(wù)器讀寫(xiě)應(yīng)用數(shù)據(jù),就是數(shù)據(jù)者。l²特別注意:下面三個(gè)概念是完全的,他們是不同的層。如主機(jī)既可以是GATT客戶端,也可以是 GATT 服務(wù)器。而從機(jī)也一樣,既可以是 GATT 客戶端,也可以是GATT 服務(wù)器。服務(wù)器:客戶端提供數(shù)據(jù)服務(wù),就是數(shù)據(jù)中心??蛻舳耍簭姆?wù)器讀寫(xiě)應(yīng)用數(shù)據(jù),就是數(shù)據(jù)者。l主機(jī)、從機(jī):設(shè)備、層。設(shè)備:GAP
27、定義的l。l8.通用配置文件(GAP)GAP 層負(fù)責(zé)處理設(shè)備的接入方式和過(guò)程,包括設(shè)備發(fā)現(xiàn),鏈路建立,鏈路終止以及實(shí)現(xiàn)綁定。9.應(yīng)用層應(yīng)用層定義了三種種類型:特征(characteristic)、服務(wù)(service)和配置文件(profile)。特征:采用已知格式、以通用唯一識(shí)別碼(UUID)作為表示的一個(gè)小塊數(shù)據(jù),由于特征要求能夠重復(fù)使用,因而設(shè)計(jì)時(shí)沒(méi)有涉及行為,特征被定義為計(jì)算機(jī)的可讀格式,當(dāng)l計(jì)算機(jī)遇到一個(gè)從未接觸過(guò)的特征時(shí),計(jì)算機(jī)可以去更新這個(gè)特征的規(guī)則,從而正確特征,并向用戶展示的特征。服務(wù):服務(wù)是人類可讀的一組特征及其相關(guān)的行為規(guī)范,只定義了位于服務(wù)器上的相關(guān)特性和行為,而不定義
28、客戶端的行為。服務(wù)有兩種類型,首要服務(wù)和次要服務(wù),一個(gè)服務(wù)是首要服務(wù)還是次要服務(wù)取決于服務(wù)的定義,首要服務(wù)表征一個(gè)給定的設(shè)備主要做些什么。正是通過(guò)這些服務(wù),用戶才了解到該設(shè)備是做什么的。次要服務(wù)是那些協(xié)助主要業(yè)務(wù)或其他次要服務(wù)的服務(wù)。l配置文件:是用例或應(yīng)用的最終體現(xiàn)。配置文件是描述一個(gè)或多個(gè)設(shè)備的說(shuō)明,每一個(gè)設(shè)備提供一個(gè)或多個(gè)服務(wù),配置文件描述了如何發(fā)現(xiàn)和連接設(shè)備,從而為每臺(tái)設(shè)備確定了拓展結(jié)構(gòu),配置文件還描述的客戶端的行為,用于發(fā)現(xiàn)服務(wù)和服務(wù)特性。l2.5. BLE 廣播、掃描和連接2.5.1.廣播l 通用廣播:最常用的廣播方式,可以被掃描,接收到連接請(qǐng)求時(shí)可以作為從設(shè)備進(jìn)入一個(gè)連接。l 定
29、向廣播:于快速建立連接的需求,定向廣播會(huì)占滿整個(gè)廣播信道,數(shù)據(jù)凈荷只包含廣播者和發(fā)起者地址,發(fā)起者收到發(fā)給的定向廣播后,會(huì)立即連接請(qǐng)求。l 不可連接廣播:廣播數(shù)據(jù),而不進(jìn)入連接態(tài)。l 可發(fā)現(xiàn)廣播:不可連接,但可以響應(yīng)掃描。BLE 廣播間隔:是指兩次廣播之間的最小時(shí)間間隔,一般取值范圍在 20ms-10.24S之間,鏈路層會(huì)在每次廣播時(shí)間期間產(chǎn)生一個(gè)隨機(jī)廣播延時(shí)時(shí)間(0ms-10ms)。2.5.2.掃描每次掃描,設(shè)備打開(kāi)間參數(shù)掃描窗口和掃描間隔:去廣播設(shè)備,這稱為一個(gè)掃描,掃描有兩個(gè)時(shí)l 掃描窗口(scan window):一次掃描進(jìn)行的時(shí)間寬度。l 掃描間隔(scan interval):兩個(gè)
30、連續(xù)的掃描窗口的起始時(shí)間之間的時(shí)間差,包括掃描休息的時(shí)間和掃描進(jìn)行的時(shí)間。圖 1-8:掃描間隔和掃描窗口2.5.3.連接接是指主設(shè)備和從設(shè)備之間相互數(shù)據(jù)包的過(guò)程。ll 所有的都是通過(guò)連接來(lái)完成。l 每個(gè)發(fā)生在某個(gè)數(shù)據(jù)通道(036)。接中,主從設(shè)備依靠連接交換數(shù)據(jù)。ll 設(shè)備連接后,無(wú)論有無(wú)數(shù)據(jù)收發(fā),連接直到一方停止響應(yīng)。都在按照設(shè)置的連接參數(shù)周而復(fù)始的進(jìn)行著,l 主機(jī)與從機(jī)可在單次連接進(jìn)行多次數(shù)據(jù)傳輸。圖 1-9:連接1)l連接參數(shù)連接間隔:必須是 1.25ms 的倍數(shù),范圍是從最小值 6(7.5ms)到最大值 3200(4.0s)。間隔參數(shù)包括兩個(gè) 16 位的值,第一個(gè)為最小連接間隔,第二個(gè)
31、為最大連接間隔。從機(jī)延遲:這個(gè)參數(shù)描述了從機(jī)跳過(guò)連接的次數(shù)。這使設(shè)備具有一定的靈活性,l如果它不具有任何數(shù)據(jù)傳送,它可以選擇跳過(guò)連接,并保持睡眠,從而提供了一些積蓄力量。這一決定取決于設(shè)備。之間間隔的最大值。如果超過(guò)這個(gè)時(shí)間還未出現(xiàn)成監(jiān)督超時(shí):這是兩個(gè)的連接l功的連接,那么設(shè)備將會(huì)考慮失去連接,返回一個(gè)未連接狀態(tài)。這個(gè)參數(shù)值使用10ms 的步進(jìn)(10ms 的倍數(shù))。監(jiān)督超時(shí)時(shí)間從最小 10(100ms)到最大 3200(32.0s)。同時(shí)超時(shí)時(shí)間必須大于有效連接。2)連接參數(shù)和功耗、傳輸速度的關(guān)系不同的應(yīng)用也許需要不同的連接間隔,一個(gè)長(zhǎng)時(shí)間的連接間隔將會(huì)節(jié)約的能量,因?yàn)樵O(shè)備可以在兩個(gè)連接之間睡
32、眠更長(zhǎng)的時(shí)間。但是他會(huì)導(dǎo)致數(shù)據(jù)不及時(shí),如果有數(shù)據(jù)要那么他只能夠在下一次連接到來(lái)時(shí)才能被。表 1-1:連接參數(shù)和功耗、傳輸速度的關(guān)系2.6. Profile、Service 、Characteristic 和 UUID1.profile(配置文件)profile 是 Service 的集合,它是預(yù)定義的,并不是實(shí)際存在于設(shè)備中,所以在設(shè)備的代碼中,我們看不到 profile 的實(shí)現(xiàn)代碼。Profile 分為標(biāo)準(zhǔn)的和自定義的,標(biāo)準(zhǔn)的 profile短連接間隔高功耗,高數(shù)據(jù)吞吐量,等待時(shí)間短。長(zhǎng)連接間隔低功耗,低數(shù)據(jù)吞吐量,等待時(shí)間長(zhǎng)。低或者 0 潛伏值從機(jī)在沒(méi)有數(shù)據(jù)的情況下高功耗,從機(jī)可以快速的收
33、到主機(jī)的數(shù)據(jù)。高潛伏值從機(jī)在沒(méi)有數(shù)據(jù)的情況下可以低功耗;從機(jī)無(wú)法及時(shí)收到主機(jī)的數(shù)據(jù),但主機(jī)收到從機(jī)的數(shù)據(jù)。是由 SIG 定義和發(fā)布的,如心率 profile、防丟 profile,自定義的 profile 是由開(kāi)發(fā)者定如義,如 SDK 中的藍(lán)牙串口透?jìng)鞯?profile。標(biāo)準(zhǔn)的 profile 可以在 SIG 的下:https:/specifications/gatt上查到,一個(gè) profile 文件可以包含一個(gè)或者多個(gè)服務(wù),如心率 profile 包含了Heart Rate Service(心率服務(wù))和 Device Information Service(設(shè)備信息服務(wù)),從 SIG上心率
34、profile,打開(kāi)后可以看到心率傳感器服務(wù)需求表格,由表中可以看到心率 profile 規(guī)定必須包含HeartRate Service 和Device Information Service。M:強(qiáng)制要求的。2.Service(服務(wù))服務(wù)是一組特征和它們公開(kāi)的行為的集合,一個(gè)服務(wù)可以包含一個(gè)或多個(gè)特性。Service也分為標(biāo)準(zhǔn)的和自定義的,標(biāo)準(zhǔn)的 Service 是由 SIG 定義和發(fā)布的,如心率 Service、防丟Service,自定義的 Service 是由開(kāi)發(fā)者定義,如 SDK 中的藍(lán)牙串口透?jìng)鞯?Service。標(biāo)準(zhǔn)的 Service 可以在SIG 的上查到(同 profile)。
35、3.Characteristic(特征)特征是具有特定意義的數(shù)值,如心率、溫度值等等。BLE 主從機(jī)之間的數(shù)據(jù)傳輸實(shí)際傳輸?shù)木褪翘卣髦怠?.UUIDUUID(Universally Unique Identifier)是一個(gè) 128 位的數(shù)字,用來(lái)標(biāo)志屬性的類型。Service和 Characteristic 都是一種屬性,都需要一個(gè)唯一的UUID 來(lái)標(biāo)識(shí)。既然UUID 是 128 位的數(shù)字,那么為什么有 16 位的 UUID? 因?yàn)?28 位的UUID 相當(dāng)長(zhǎng),設(shè)備間為了識(shí)別數(shù)據(jù)的類型需要長(zhǎng)達(dá)16 字節(jié)的數(shù)據(jù)。為了提高傳輸效率,藍(lán)牙技術(shù)(SIG)定義了一個(gè)“UUID 基數(shù)”,結(jié)合一個(gè)較短的
36、16 位數(shù)使用。二者仍然遵循通用唯一識(shí)別碼的分配規(guī)則,只不過(guò)在設(shè)備間傳輸常用的 UUID 時(shí),只較短的 16 位版本,接收方收到后補(bǔ)上藍(lán)牙 UUID 基數(shù)即可。第二章:新建 BLE 工程模板1.學(xué)習(xí)目的藍(lán)牙BLE 工程模板是學(xué)習(xí) NORDIC 藍(lán)牙BLE 程序開(kāi)發(fā)的切入點(diǎn),BLE 工程模板完成了 Nordic BLE 程序開(kāi)發(fā)的基本框架,功能類似于一個(gè) BLE 的“最小系統(tǒng)”。通過(guò)本章的新建BLE 工程模板,我們需要了解和掌握以下內(nèi)容:1.2.3.了解BLE 工程的建立過(guò)程和配置項(xiàng)目。了解對(duì)于一個(gè)基本的 BLE 工程,需要加入哪些文件以及這些文件在工程中的分組。掌握利用 MDK 新建協(xié)議?!癟
37、arget”的方法,建立協(xié)議棧“Target”后,即可使用 MDK協(xié)議棧 HEX 文件。(該方式不僅可以載其他 HEX 文件均可參考此方法)。協(xié)議棧 HEX 文件,如需要使用 MDK 下2.新建BLE 工程模板2.1.工程目錄和 機(jī)新建工程一樣,在建立工程之前,我們需要先考慮一下工程文件的組織,也就是工程文件在計(jì)算機(jī)中的存放目錄。清晰的工程目錄既方便我們管理工程中的各個(gè)文件,也方便日后的維護(hù)和移植,我們可以根據(jù)的習(xí)慣和喜好來(lái)建立的工程目錄,但是也不要太隨意,文件目錄應(yīng)該一目了然,目錄中各個(gè)文件夾的名字要能準(zhǔn)確地指示里面的內(nèi)容。下面是我們建立工程時(shí)使用的工程目錄,供大家參考,其中:nnApp 文
38、件夾:用于存放 main.c 文件和我們Project 文件夾:編寫(xiě)的應(yīng)用程序文件。l Config 文件夾:用于存放工程配置向?qū)В╯dk_config.h)。l mdk5 文件夾:用于存放工程文件。doc 文件夾:用于存放說(shuō)明之類的文檔。components、integration、modules 等:從SDK 中拷貝的庫(kù)文件。nn圖 2-1:工程存放目錄2.2. 建立工程目錄、拷貝庫(kù)文件按照上文中描述的工程目錄新建用于存放工程各個(gè)模塊的文件夾。先在 D 盤(pán)新建一個(gè)名字為 ble_app_templete 的文件夾,然后在這個(gè)文件夾下面新建 3 個(gè)名字分別為 project、doc 和 ap
39、p 的文件夾,之后在 project 文件夾里面再新建 config 和 mdk5 兩個(gè)文件夾,其中 config 文件夾用于存放工程配置向?qū)В╯dk_config.h),mdk5 文件夾用于存放工程文件。之后,解壓 SDK.15.2,并將需要的庫(kù)文件(包含 components、integration、modules 和external 文件)拷貝到BLE 工程模板目錄下,如下圖所示。圖 2-2:拷貝庫(kù)文件2.3. 新建工程建立工程存放文件夾和拷貝庫(kù)文件之后,我們就可以開(kāi)始建立工程了。工程名取為:ble_app_templete_s132(這樣取名是為了符合 Nordic 的 SDK 命名規(guī)
40、則, 其中 ble 表示這是一個(gè)ble 的工程,app 表示應(yīng)用程序,templete 表示模板,s132 表示使用的協(xié)議棧是 s132),工程存放到 D 盤(pán) ble_app_templete 文件夾。1.啟動(dòng) MDK,點(diǎn)擊【Project】,在彈出的下拉菜單中選擇【New uVision Project】。圖 2-3:新建工程窗口2.設(shè)置工程名和工程保存路徑,設(shè)置完成后點(diǎn)擊【保存】。²工程路徑和工程名設(shè)置注意事項(xiàng):工程路徑和工程名不能包含漢字字符(雖然有些計(jì)算機(jī)使用漢字字符沒(méi)有問(wèn)題,但是還是建議不要使用漢字字符,因?yàn)?MDK 對(duì)漢字字符的支持比較差),同時(shí)路徑不要過(guò)深,否則打開(kāi)工程
41、或時(shí)可能會(huì)出現(xiàn)問(wèn)題。圖 2-4:設(shè)置工程路徑和工程名保存后,工程名稱是:ble_app_templete_s132,工程保存路徑是:“ble_app_templeteprojectmdk5 ble_app_templete_s132”。3.保存工程后,會(huì)彈出器件選擇窗口,選擇好器件后點(diǎn)擊【確定】。開(kāi)發(fā)板上使用的 nRF52832 型號(hào)是:nRF52832-QFAA,所以,在下圖的器件列表中需要選擇這個(gè)型號(hào)。選中器件后,右邊的文本框中會(huì)顯示該器件的描述信息。圖 2-5:選擇器件4.配置 RTE(Run-Time Environment),選擇完成后點(diǎn)擊【OK】。勾選兩個(gè)必選項(xiàng):CMSIS 中的C
42、ORE 和DEVICE 中的 StartUp。注意他們的版本號(hào),SDK版本不一樣,對(duì)應(yīng)的 CMSIS 和 StartUp 版本號(hào)可能會(huì)不一樣,本文使用的 SDK 版本是SDK15.2,SDK15.2 對(duì)應(yīng)的 CORE 版本是 4.5.0,StartUp 版本是 8.17.0。下圖中,我們可以看到CORE 的版本只能選擇 5.0.1,StartUp 版本只能選擇 8.17.0,這是因?yàn)榘惭bMDK5.23 時(shí)會(huì)自動(dòng)安裝 5.0.1 的 CORE,而 MDK 新建工程時(shí)只會(huì)顯示已安裝的最新的 CORE 和 StartUp 版本,所以,這里只能選擇這兩個(gè)版本。工程建立好了之后,我們可以在工程配置中修改
43、,以保持和 SDK15.2 一致,后面在工程配置章節(jié)會(huì)說(shuō)明修改方法。圖 2-6:配置 RTE² 注意事項(xiàng):再次說(shuō)明一下,新建工程配置 RTE 時(shí),對(duì)于 CORE 和 StartUp,MDK 會(huì)自動(dòng)選擇最新的版本,在這個(gè)步驟我們直接選擇最新版本,后面配置工程時(shí)再根據(jù)需要修改為需求的版本即可。5.管理 MDK 工程目錄。主要是添加組(也就是在 MDK 中添加文件夾)、修改組名稱和軟件包(pack),目的是為了目錄清晰,方便添加文件和管理文件。這里我們使用的工程目錄是參考 SDK 里面的 BLE工程的,這么做的好處是和 SDK 保持一致,以方便我們閱讀 SDK 里面的參考代碼。圖 2-7:
44、整理工程目錄1)l整理目錄時(shí)會(huì)用到下面幾個(gè)操作:修改組名稱:先選中需要修改名稱的組,然后單擊即可修改名稱。注意,不是雙擊。添加組:選中 Target(即整理后的目錄中的 IK-52832DK),右鍵選中“Add Group”,即可添加一個(gè)組。調(diào)整組的順序(如果組中添加了文件,也可以在這里調(diào)整文件的順序)。點(diǎn)擊工程項(xiàng)目管理圖標(biāo)ll圖 2-8:打開(kāi)工程項(xiàng)目管理窗口按照下圖所示根據(jù)件的順序。的習(xí)慣調(diào)整組的順序,如果組中添加了文件,也可以調(diào)整組中文圖 2-9:調(diào)整組的順序2)管理軟件包:這里不需要過(guò)多操作,我們可以在這修改 StartUp 的版本和選擇是否自動(dòng)使用安裝的最新的軟件包。設(shè)置是否自動(dòng)使用安
45、裝的最新的軟件包:勾選“Use latest versions of all installed Software Packs”即可打開(kāi)自動(dòng)使用安裝的最新的l軟件包,不勾選即可以使用指定的版本。l 修改 StartUp 和 CORE 的版本:如我們的計(jì)算機(jī)中安裝了 Nordic nRF5x 幾個(gè)版本的器件包,就會(huì)顯示多個(gè)版本的器件包,因?yàn)?SDK15.2 使用的CMSISI 版本是 4.5,器件包版本是 8.17.0,所以我們要選擇 CMSIS 的版本是 4.5,器件包的版本是 8.17.0,同時(shí)去掉自動(dòng)選擇最新版本的勾選,如下圖所示。點(diǎn)擊下圖所示的圖標(biāo),打開(kāi)軟件包管理窗口。圖 2-10:打開(kāi)
46、軟件包管理窗口圖 2-11:修改 StartUp 和 CORE 的版本這里設(shè)置下面 3 項(xiàng),這么設(shè)置是為了讓我們建立的工程使用確定的軟件版本,這樣就可以避免因?yàn)樽詣?dòng)最新版本引起問(wèn)題的風(fēng)險(xiǎn)。l 關(guān)閉自動(dòng)使用最新的軟件包功能。l CMSIS 版本設(shè)置為 4.5.0,并設(shè)置版本fixed。l pack 版本設(shè)置為 8.17.0,并設(shè)置版本fixed。2.4. 添加需要的庫(kù)文件1.Board Definition 組“Board Definition”組中需要加入板卡定義文件“boards.c”,該文件于具體板卡,主要要用來(lái)定義板卡的指示燈、按鍵、IO 輸出電壓(僅 nRF52840 具有此功能)以及
47、常用的操作函數(shù)。對(duì)于 IK-52832DK 開(kāi)發(fā)板(兼容 Nordic 的 PCA10040),設(shè)計(jì)了 4 個(gè)指示燈和按鍵,在“boards.c”文件中,我們可以看到這些按鍵和指示燈的初始化函數(shù)以及一些基本功能如點(diǎn)亮、熄滅、翻轉(zhuǎn)的操作函數(shù)。表 2-1:“Board Definition”組中加入的文件2.Board Support 組“Board Support”組加入的是板卡支持包文件,即 BSP 文件,主要用于實(shí)現(xiàn)指示燈和按鍵的驅(qū)動(dòng),如下表所示。表 2-2:“Board Support”組中加入的文件3.UTF8/UTF16 converter 組“UTF8/UTF16 converter
48、”組只需加入一個(gè)實(shí)現(xiàn) UTF8/UTF16 編碼轉(zhuǎn)換的文件,如下表所示。表 2-3:“UTF8/UTF16 converter”組中加入的文件4.nRF_BLE 組“nRF_BLE”組加入的是 BLE 相關(guān)的庫(kù)文件,如廣播、連接參數(shù)協(xié)、配對(duì)管理等等,“nRF_BLE”組中加入的文件如下表所示。表 2-4:“nRF_BLE”組中加入的文件文件名路徑ble_advdata.c. componentsblecommonble_conn_params.c. componentsblecommonble_conn_state.c. componentsblecommonmon.c. componentsblecommonble_advertising.c. componentsbleble_advertisingnrf_ble_gatt.c. componentsblenrf_ble_gattnrf_ble_qwr.c. componentsblenrf_ble_qwr文件名路徑utf.c. externalutf_converter文件名路徑bsp.c. components
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 探索人文關(guān)懷與生物學(xué)教學(xué)融合計(jì)劃
- 實(shí)驗(yàn)室科技創(chuàng)新與發(fā)展方向計(jì)劃
- 增強(qiáng)學(xué)生社交能力的活動(dòng)設(shè)計(jì)計(jì)劃
- 廣東省清遠(yuǎn)市部分重點(diǎn)高中2024-2025學(xué)年高二上學(xué)期月考生物試題含答案
- 跨國(guó)公司采購(gòu)戰(zhàn)略與市場(chǎng)趨勢(shì)分析
- 質(zhì)量管理體系構(gòu)建與實(shí)施策略
- 跨文化背景下的學(xué)習(xí)心理差異研究
- 2025年短視頻相關(guān)知識(shí)考核試題
- 質(zhì)量管理體系在醫(yī)院信息化推進(jìn)中的作用
- 浙江國(guó)企招聘2024浙江甌越交建科技股份有限公司招聘3人筆試參考題庫(kù)附帶答案詳解
- 小回溝礦井3.0Mt-a新建工程變更項(xiàng)目環(huán)評(píng)
- 汽車維修合同管理制度
- 2024中交二航局分包合同范本
- 2024年益陽(yáng)醫(yī)學(xué)高等專科學(xué)校單招職業(yè)適應(yīng)性測(cè)試題庫(kù)全面
- 2024年四川電力職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)新版
- (完整)低壓配電柜技術(shù)規(guī)范
- 2024年注冊(cè)安全工程師考試題庫(kù)【含答案】
- 第2課《樹(shù)立科學(xué)的世界觀》第2框《用科學(xué)世界觀指導(dǎo)人生發(fā)展》-【中職專用】《哲學(xué)與人生》同步課堂課件
- 南航航空安全員培訓(xùn)
- 焊接基礎(chǔ)知識(shí):焊接的缺陷及檢驗(yàn)方法
- 2型糖尿病科普講座課件
評(píng)論
0/150
提交評(píng)論