[AIROC™ 蓝牙]【英飞凌CYW20829测评】高级1-蓝牙广播 与 自定义服务收发数据

一、广播名 与 扫描回复
下载并使用“Bluetooth_LE_Multi-peripheral”例程。


1、广播名
新上手一个平台,先看Main中与蓝牙相关的API。看看代码,熟悉一下平台。


阅读代码后,跳转到“app_bt_management_callback”发现是状态机,
 




在使能case下,找到了蓝牙初始化函数。话说这里为什么是bt,不是ble?
 




跳转到“app_bt_init”函数里,可以看见如上图,注释写着 设置广播数据的API。
 




跳转到cy_bt_adv_packet_data就可以发现广播名的数组了,在尝试过后发现修改广播名方法有2个。
方法1:
直接修改广播数据数组
 




下图是手机APP的截图,广播数据可以对应上。
 


虽然广播数据对的上了,但是还要实验、测试一下是不是找对地方了。


修改广播名为”ABC”,烧录。
 


下图是手机APP截图,可以确认我们找到的就是广播名。
 






修改广播名的第二种方法:
使用IDE工具,直接填写
 


①点击GAP Setting
②修改广播名
③保存后退出,即可修改广播名
 


烧录后也是使用第一种方法确认。


2、添加扫描回复
在“app_bt_init”中只打开了了广播内容,并没有打开扫描回复。所以要添加代码打开扫描回复 和 修改扫描回复的数据。


打开扫描回复
①添加扫描回复API
 


②将数量改为3
 




找到扫描回复内容
 




扫描回复的内容,可以和广播一样,但是我要验证是否打开扫描回复,所以修改为:
 




修改结果:
 


 





二、添加服务
1、添加服务与特征
再次回到“app_bt_init”函数中,找到添加服务的函数。
 






跳转后发现这个数组太复杂了,能看懂,但是修改太麻烦了(要打太多字了)。。。
并且 修改服务、添加 肯定与 修改广播内容 时同理有2种方法,分别是:1、手动修改 2、使用IDE内置工具生成。但是手动的太、太复杂了,所以只做使用工具生成的方式添加服务。
 




①添加服务
 




②添加特征,Write 和 Notify,Write用于接收APP下发数据,Notify用于发送数据给APP
 


保存后,编译烧录即可,应该长度是自动计算的,不用手动填写了。


下图是添加后的效果:
 





2、收发数据
添加服务后就是将接收的数据打印出来,先找到接收数据(即APP写数据)的地方:
 




阅读代码后,用handle 的值区分服务后接收数据,这个值也有生成出来
 




想要实现发送数据,就要找到notify发送数据的接口:
 


wiced_bt_gatt_server_send_notification
作用:以Notify的形式发送数据给APP


参数:
①连接的ID,即连接的设备顺序,第一个连接的设备就是0
②Handle,就是Handle,可以大致的理解为服务、特征的顺序
③数据长度
④数据
⑤暂时不理解,跟着填NULL


于是把接收数据 与 发送数据组合起来:
 




将自定义服务接收到的数据,转发回手机,实验的结果如下:
 

f3429ab9f777c619d84a0ca3690bae03 (211.91 KB )

下载附件

2024-7-8 14:46 上传


数据转发回手机了,不过回复太快了,APP显示顺序有问题。
---------------------
作者:dvacos
链接:https://bbs.21ic.com/icview-3388326-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值