【三】CC2541 Central 与 Peripheral 主从机实验 小结

本文详细介绍了蓝牙低功耗(BLE)技术中主机与从机的主要区别,包括各自的代码实现特点、读写函数的不同及关键函数的作用。通过对比分析帮助读者更好地理解BLE的工作原理。

【1】主机、从机 代码主要区别。有无profile。

主机:无 profile

从机:有 profile  (从机里包含了一个叫做profile的相关代码,这个profile决定了从机的功能。例如防丢器、血压仪、心率计等均是蓝牙组织规定的profile。)

【2】主机、从机 读写函数的区别

主机(Client客户端):   GATT_WriteCharValue(?); 或者 GATT_ReadCharValue(?); 需要提前注册GATT的notify和indicate的接收端,

                                 才能接收从机通过GATT_Notification发来的数据。

从机(Service服务端): 通过notify的方式。调用GATT_Notification发起和主机的通信。问题:具体读写函数呢?

【3】重点函数介绍

回调函数? 定义: 会被其他系统自动调用的一个函数。经常涉及到函数指针。初学者可先记着但暂且不要深究,以后有机会再深究。

学习BLE函数方法:初步了解-->会使用(会传递参数、使用返回值)-->会熟练使用(会传递参数、使用返回值),重要的函数会背诵其函数名-->如果有必要,再深究

主机:

1、void simpleBLECentralRssiCB( uint16 connHandle, int8 rssi ); //回调函数  作用:系统通过rssi告诉用户,当前的 rssi信号值,然后可LCD显示

     void simpleBLECentralEventCB( gapCentralRoleEvent_t *pEvent ); //回调函数 作用:通知用户当前的主机状态,然后决定下一步如果操作(如LCD显示数据)。

2、void simpleBLECentral_ProcessOSALMsg(?);

     simpleBLECentral_HandleKeys(?);

3、 GAPCentralRole_StartDiscovery(?); GAPCentralRole_CancelDiscovery(?);

4、GATT_WriteCharValue(?); 

     GATT_ReadCharValue(?);

     simpleBLECentralProcessGATTMsg(?); 

5、RSP: 响应

     RSQ: 请求

6、关于回调函数如何被调用。【深度理解】   理解为:注册一下回调函数后,当某个参数变化时,系统会自动调用该回调函数。 

在uint16 SimpleBLECentral_ProcessEvent(?) 事件处理函数中的 

VOID GAPCentralRole_StartDevice( ( gapCentralRoleCB_t * )  &simpleBLERoleCB ); //启动设备事件发生时,注册GAP状态回调函数,

每当GAP状态改变时,系统会自动调用该回调函数进行相应的操作。

【插播】:

用SI软件打开从机、主机例程。

对比: 从机SimpleBLEPeripheral_Init() --主机 SimpleBLEPeripheral_Init()

1: 设备名。将鼠标放在1圆圈处,即可自动显示当前各自的设备名。【结合实验现象: LCD液晶 显示的字样。】

2:GAP绑定。看下这个2区域,哪些函数、变量有何区别。【结合实验现象: LCD液晶 显示的字样。结合主机、从机读写方式的区别理解。】

注意:截图 左边是从机,右边是主机。

主从机读写方面,各自为对方付出:

从机: 有profile.

主机: 有注册ATT  Indications/notification. 用到函数 GATT_RegisterForInd(xxx);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值