• 正文
  • 相关推荐
申请入驻 产业图谱

BLE主机实战:使用泰凌BLE芯片发写入请求给到芯科BLE芯片

08/26 09:20
267
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、前言

本篇是上一篇的延续,将编写代码,使用泰凌的芯片作为主机,发信息给到从机。备注:芯科芯片作为从机。

二、阅读说明

1、泰凌微芯片开发学习者。

2、芯科芯片开发学习者。

3、蓝牙 spec学习者。

三、正文

1、使用的demo

泰凌芯片:ble_master_kma_dongle

芯科芯片:Bluetooth - SoC Blinky

2、查看芯科芯片LED Control的读写权限

如上图所示,可以看到该UUID下面的读写权限为读和带回复的写,也就是在该特征值下,主机可以读取该特征值,和发送写请求。

3、查看该特征值的句柄

const u8 my_slave_uuid[16] = {0x7a, 0x08, 0x6a, 0x73,    0x6c, 0xbe,    0xd8, 0x46,    0x97, 0xc2,    0x88, 0x40, 0x10, 0x65, 0x02, 0x5b};
slave_handler = blm_att_findHandleOfUuid128 (db128, my_slave_uuid);         //OTAprintf("nslave_handler = %dn",slave_handler);

在上一篇中,已经介绍到了,如何查找对应UUID下的句柄值,我们将查找到的句柄值放入slave_handler中了,所以后续在发送写入请求给从机的时候,可以直接传入该变量。

备注:

simple_sdp.c的路径在tc_ble_single_sdkvendorcommonsimple_sdp.c

4、编写发送代码

void send_Data_toPeer(void){    static u32 time_count = 0;    static u8 data = 0;    static u8 data_temp = 0;    if(clock_time_exceed(time_count, 1000000))    {        time_count = clock_time();        data++;        data_temp = data % 2;        blc_gatt_pushWriteRequest (BLM_CONN_HANDLE, slave_handler, &data_temp, 1);        printf("master wirte command,slave_handler = %d,data_temp = %dn",slave_handler,data_temp);    }}

如上图所示,编写发送代码,该代码的功能为每1s发送一次数据给到从机,发送的数据为0和1不断进行循环。

5、串口打印

5.1、泰凌芯片输出的打印结果

5.2、芯科芯片输出的打印结果

五、结尾

本篇主要编写代码,实现主机对从机的信息发送,下一篇将介绍如何确定主机的写请求是否成功。

泰凌微电子

泰凌微电子

泰凌微电子(上海)股份有限公司成立于2010年6月,是一家专业的集成电路设计企业, 主要从事无线物联网系统级芯片的研发、设计及销售,专注于无线物联网芯片领域的前沿技术开发与突破。 通过多年的持续攻关和研发积累,已成为全球该细分领域产品种类最为齐全的代表性企业之一。

泰凌微电子(上海)股份有限公司成立于2010年6月,是一家专业的集成电路设计企业, 主要从事无线物联网系统级芯片的研发、设计及销售,专注于无线物联网芯片领域的前沿技术开发与突破。 通过多年的持续攻关和研发积累,已成为全球该细分领域产品种类最为齐全的代表性企业之一。收起

查看更多

相关推荐

专注BLE实战开发,也分享物联网、嵌入式等相关技术

微信公众号