今天我們做乙個簡單的資料傳輸實驗,就是用ti提供的lightblue 來點亮控制led
這個很簡單,我沒有用協議棧裡面的hal_led,因為我看了,這個很麻煩,明明兩句話的事情非搞得那麼複雜,廢話不說直接來分析。開啟cc2540協議棧中的例子******bleperipheral.eww。
首先我們得把hal_led的巨集關了,
新增hal_led=false,這樣 ble協議棧裡面的hal_led就算是廢了。
接下來看我的,首先對led初始化,這個就簡單了,就是和我們的51是一樣的,
我是在initboard函式裡面新增的led初始化:
p1dir |= 0x02; //設定p1_0,p1_1的io為輸出模式
p1_0 = 0; //關閉led1
p1_1 = 0; //關閉led2
就這樣初始化搞定了,下面我們就回顧一下,client向主機傳送資料用的是write,就是手機把資料寫進cc2540裡面去。在我們的lightblue這個軟體裡,characteristic3有些的屬性。因此我們就可以更改一下源**。
首先我們定義我們的任務事件
#define mytasck_event 0x0002;
定義完以後我們得觸發事件啊 對吧?
那我們就在sbp_start_device_evt (自己定義的******bleperipheral_init 這個事件 用的是
osal_set_event( ******bleperipheral_taskid, sbp_start_device_evt );這個函式觸發我們的******bleperipheral_init 事件) 事件裡面進行操作。
那麼我們該如何觸發自己定義的 mytasckevent 事件呢?
在這之前我們得介紹一下新的api osal_start_timerex
該函式是每隔5s顯示一次,去掉後,節點加入網路後,只顯示一次,就是說這個函式但是乙個定
我們可以500個時間單位觸發一次所以**該這麼寫:
#define my_tasck_evt_period 500
if ( events & sbp_start_device_evt )
if ( events &
mytasck_event)
//執行自己的任務
mytasck();
return (events ^
mytasck_event); }
void mytasck()
else
}就這樣,編譯以後把程式燒到板子裡面就ok了,
在這裡輸入1,那麼我們的led就亮了,輸入其他的數值我們的led就會熄滅。
藍芽4 0 BLE 資料傳輸 (一)
一 簡介 本文主要講解藍芽資料傳輸一。二 實驗平台 協議棧版本 ble cc254x 1.4.0 編譯軟體 iar 8.20.2 硬體平台 smart rf 主晶元cc2541 三 博主 si zhou qun 84342712 495527583 qq.com 開源四軸群 84342712 開源四...
藍芽4 0 BLE 資料傳輸 (一)
1 profile profile可以理解為一種規範,乙個標準的通訊協議,它存在於從機中。藍芽組織規定了一些標準的profile,例如 hid over gatt 防丟器 心率計等。每個profile中會包含多個service,每個service代表從機的一種能力。2 service service...
藍芽4 0 BLE 資料傳輸 (二)
在第一部分我們了解了幾個專業詞彙,接下來我們再了解一下資料的傳送 一 資料傳送 在ble協議棧中進行資料傳送分為兩個方面,乙個事gatt的client主動向service傳送資料,另乙個是gatt的service主動向client傳送資料 我們暫且簡單的分為主機向從機傳送資料,從機主動向主機傳送資料...