由淺入深,藍(lán)牙4.0/BLE協(xié)議棧開(kāi)發(fā)攻略大全(4)
本系列教程將結(jié)合TI推出的CC254x SoC 系列,講解從環(huán)境的搭建到藍(lán)牙4.0協(xié)議棧的開(kāi)發(fā)來(lái)深入學(xué)習(xí)藍(lán)牙4.0的開(kāi)發(fā)過(guò)程。教程共分為六部分,本文為第四部分:
第四部分知識(shí)點(diǎn):
第十六節(jié) 協(xié)議棧LED實(shí)驗(yàn)
第十七節(jié) 協(xié)議棧LCD顯示
第十八節(jié) 協(xié)議棧UART實(shí)驗(yàn)
第十九節(jié) 協(xié)議棧五向按鍵
第二十節(jié) 協(xié)議棧Flash數(shù)據(jù)存儲(chǔ)
有關(guān)TI 的CC254x芯片介紹,可點(diǎn)擊下面鏈接查看:
主流藍(lán)牙BLE控制芯片詳解(1):TI CC2540
同系列資料推薦:
由淺入深,藍(lán)牙4.0/BLE協(xié)議棧開(kāi)發(fā)攻略大全(1)
由淺入深,藍(lán)牙4.0/BLE協(xié)議棧開(kāi)發(fā)攻略大全(2)
由淺入深,藍(lán)牙4.0/BLE協(xié)議棧開(kāi)發(fā)攻略大全(3)
有關(guān)本文的工具下載,大家可以到以下這個(gè)地址:
朱兆祺ForARM
第十六節(jié) 協(xié)議棧LED實(shí)驗(yàn)
TI的協(xié)議棧中在HAL層已經(jīng)有了LED的驅(qū)動(dòng),我們只需要針對(duì)我們的開(kāi)發(fā)板進(jìn)行配置即可,我們的開(kāi)發(fā)板有兩個(gè)LED,分別對(duì)應(yīng)P1.0和P1.1。這個(gè)在裸機(jī)開(kāi)發(fā)的時(shí)候已經(jīng)介紹了。
為了保持協(xié)議棧原有的代碼不變,我們?cè)贐LE-CC254x-1.4.0Componentshal arget目錄下新建一個(gè)文件夾,使它適應(yīng)我們的開(kāi)發(fā)板。
打開(kāi)LED實(shí)驗(yàn)工程LEDExample,選擇MT254xboard,并且在工程配置中要定義HAL_LED=TRUE,下載到開(kāi)發(fā)板運(yùn)行,可以看到兩個(gè)LED同時(shí)在閃爍。
那我們的實(shí)現(xiàn)代碼在哪里呢?其實(shí)在協(xié)議棧中實(shí)現(xiàn)這個(gè)很簡(jiǎn)單,在啟動(dòng)事件中我們調(diào)用了一個(gè)HalLedSet函數(shù),并且設(shè)置了兩個(gè)LED同時(shí)閃爍。
就是這么簡(jiǎn)單,協(xié)議棧已經(jīng)把其它事情做好了,只需要我們調(diào)用設(shè)置函數(shù)即可。設(shè)置的模式總共有5種。
#define HAL_LED_MODE_OFF 0x00 // 關(guān)閉LED
#define HAL_LED_MODE_ON 0x01 // 打開(kāi)LED
#define HAL_LED_MODE_BLINK 0x02 // 閃爍一次
#define HAL_LED_MODE_FLASH 0x04 // 不斷的閃爍,最多255次
#define HAL_LED_MODE_TOGGLE 0x08 // 翻轉(zhuǎn)LED狀態(tài)
為了適應(yīng)不同的需求,我們可能需要更改LED的輸出引腳,如圖板級(jí)配置在hal_board_cfg.h文件中。
這里我們的開(kāi)發(fā)板只有兩個(gè)LED,所以我們?cè)谶@里根據(jù)開(kāi)發(fā)板的實(shí)際情況修改相應(yīng)的IO口。