[转载]蓝牙4.0 BLE 数据传输(四)

今天我们做一个简单的数据传输实验,就是用TI提供的lightblue 来点亮控制LED
首先我们来看一下用手机APP来控制led,我是用app来控制cc2540这个模块,那么我的模块就是从机,从机一般都是service,那么手机就是主机,是client。
这个很简单,我没有用协议栈里面的hal_led,因为我看了,这个很麻烦,明明两句话的事情非搞得那么复杂,废话不说直接来分析。打开cc2540协议栈中的例子SimpleBLEPeripheral.eww。
首先我们得把hal_led的宏关了,

002sNcnygy6KKw8pWzqb4&690.png

添加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 (自己定义的SimpleBLEPeripheral_Init 这个事件 用的是
osal_set_event( simpleBLEPeripheral_TaskID, SBP_START_DEVICE_EVT );这个函数触发我们的SimpleBLEPeripheral_Init 事件) 事件里面进行操作。
那么我们该如何触发自己定义的 mytasckevent 事件呢?
在这之前我们得介绍一下新的api osal_start_timerEx

osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT,
(SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT+ (osal_rand() & 0x00FF)) );
该函数是每隔5s显示一次,去掉后,节点加入网络后,只显示一次,就是说这个函数但是一个定

时出发的函数,每隔(SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT+ (osal_rand() & 0x00FF)) 这么

长时间就会执行SAMPLEAPP_SEND_PERIODIC_MSG_EVT触发的函数

我们可以500个时间单位触发一次所以代码该这么写:

define MY_TASCK_EVT_PERIOD 500

if ( events & SBP_START_DEVICE_EVT )
{
// Start the Device
VOID GAPRole_StartDevice( &simpleBLEPeripheral_PeripheralCBs );

// Start Bond Manager
VOID GAPBondMgr_Register( &simpleBLEPeripheral_BondMgrCBs );

// Set timer for first periodic event
osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_PERIODIC_EVT, MY_TASCK_EVT_PERIOD);

return ( events ^ SBP_START_DEVICE_EVT );

}

if ( events & MYTASCK_EVENT)
{
//重新启动计时器
if ( MY_TASCK_EVT_PERIOD)
{
osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_PERIODIC_EVT, MY_TASCK_EVT_PERIOD);
}

//执行自己的任务
mytasck();

return (events ^ MYTASCK_EVENT);

}
void mytasck()
{
uint8 valueToCopy;
uint8 stat;
stat = SimpleProfile_GetParameter( SIMPLEPROFILE_CHAR3, &valueToCopy);
if(valueToCopy == 0x01) {
P1_0 = 1;
P1_1 = 1;
} else {
P1_0 = 0;
P1_1 = 0;
}
}
就这样,编译以后把程序烧到板子里面就ok了,

002sNcnygy6KKAmDGmq3e&690.jpeg
002sNcnygy6KKAnh23Pdd&690.jpeg

在这里输入1,那么我们的led就亮了,输入其他的数值我们的led就会熄灭。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • ●通过ZigBee协议栈实现一个简单的无线数据通信的时候怎么做? ①组网:调用协议栈的组网函数、加入网络函数,实现...
    康双全阅读 4,892评论 0 6
  • 点播即点对点通信,也就是在两个设备之间进行通信,不允许有第三个设备收到信息。点播描述的就是网络中两个节点之间相互通...
    羽墨志阅读 3,572评论 0 1
  • 低功耗蓝牙(BLE)设备的通信基本协议是 GATT, 要操作 BLE 设备,第一步就是要连接设备,其实就是连接 B...
    风雨byt阅读 3,948评论 1 11
  • 所谓组播,就是在网络中所有节点设备被分组后组内相互通信的过程。通过节点的组号来确定通信对象。 1.组播参数设置在文...
    羽墨志阅读 2,988评论 0 1
  • 新闻营销对大家而言一定不陌生,随着互联网的发展,网络营销推广的方式也随之变得更加丰富,想要做好网络营销推广的方式很...
    laohepan阅读 369评论 0 0