一、前言
本篇是上一篇的延续,将编写代码,使用泰凌的芯片作为主机,发信息给到从机。备注:芯科芯片作为从机。
二、阅读说明
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、芯科芯片输出的打印结果
五、结尾
本篇主要编写代码,实现主机对从机的信息发送,下一篇将介绍如何确定主机的写请求是否成功。
267
