【BLE】CC2541之发现服务与特征值

一、简介

本篇以SimpleBLECentral工程为例,解析CC2541作为主机时是如何发现从机的服务和特征值的。


二、实验平台

协议栈版本:BLE-CC254x-1.3.2

编译软件:IAR 8.20.2

硬件平台:smart RF开发板


三、版权声明

博主:甜甜的大香瓜

声明:喝水不忘挖井人,转载请注明出处。

原文地址:http://blog.csdn.net/feilusia

联系方式:[email protected]

技术交流QQ群:127442605


四、服务和特征值

一个工程可以有多个服务,比如按键服务、心率计服务、温度计服务。

一个服务可以有多个特征值,特征值是主从机传输数据的媒介,像运人渡河的小船。


如果主机要想获得按键服务的特征值,必须先发现按键服务、再获得按键服务的特征值句柄、再根据特征值句柄获取特征值。


五、代码解析

1、启动发现服务事件

【BLE】CC2541之发现服务与特征值_第1张图片

在连接完成时,主机会判断是否之前获取过特征值句柄,如果没有获取到,则调用定时器进“START_DISCOVERY_EVT事件”开始发现服务。


2、发现服务事件

【BLE】CC2541之发现服务与特征值_第2张图片


3、发现服务的函数

【BLE】CC2541之发现服务与特征值_第3张图片

默认发现的是UUID为FFF0的服务。


4、发现服务的回调函数

【BLE】CC2541之发现服务与特征值_第4张图片

发现服务后,就会进入该函数。

此时可以通过特征值的UUID来读取对应的特征值句柄。默认的是读取CHAR1的特征值句柄。


5、获得特征值句柄

【BLE】CC2541之发现服务与特征值_第5张图片

读到特征值句柄后会再次进入该回调函数,此时将特征值句柄保存下来,随口可用来操作特征值。

你可能感兴趣的:(【BLE】CC2541之发现服务与特征值)