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

一、简介

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


二、实验平台

协议栈版本:BLE-CC254x-1.4.0

编译软件:IAR 8.20.2

硬件平台:Smart RF(主芯片CC2541)

 

 

三、版权声明

 

博主:甜甜的大香瓜

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

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

联系方式:897503845@qq.com

香瓜BLE之CC2541群:127442605

香瓜BLE之CC2640群:557278427

香瓜BLE之Android群:541462902

香瓜单片机之STM8/STM32群:164311667
甜甜的大香瓜的小店(淘宝店):https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
 
四、实验前提
1、在进行本文步骤前,请先阅读以下博文:
暂无
 
2、在进行本文步骤前,请先实现以下博文:
暂无

 

 

五、基础知识

1、服务和特征值是什么?

答:

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

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

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

 

六、代码解析

1、启动发现服务事件

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

 

2、发现服务事件

 

3、发现服务的函数

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

 

4、发现服务的回调函数

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

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

 

5、获得特征值句柄

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

posted @ 2018-08-04 20:35  专注it  阅读(557)  评论(0编辑  收藏  举报