[资料分享]

CC2541之发现服务与特征值

[复制链接]
523|6
手机看帖
扫描二维码
随时随地手机跟帖
nawu|  楼主 | 2019-7-10 11:30 | 显示全部楼层
基础知识

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

答:

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

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

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

使用特权

评论回复
nawu|  楼主 | 2019-7-10 11:31 | 显示全部楼层

代码解析

1、启动发现服务事件

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


使用特权

评论回复
nawu|  楼主 | 2019-7-10 11:31 | 显示全部楼层

2、发现服务事件


使用特权

评论回复
nawu|  楼主 | 2019-7-10 11:31 | 显示全部楼层

3、发现服务的函数

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


使用特权

评论回复
nawu|  楼主 | 2019-7-10 11:32 | 显示全部楼层

4、发现服务的回调函数

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

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



使用特权

评论回复
nawu|  楼主 | 2019-7-10 11:32 | 显示全部楼层

5、获得特征值句柄

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


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

72

主题

3307

帖子

3

粉丝