本帖最后由 slmxiaodai 于 2025-2-21 15:38 编辑  
 
接着第一篇:/forum/fo ... 1&extra=#pid1553606 
4. 蓝牙数据接收测试在acl_peripheral_domo例程的基础上,稍作修改以实现蓝牙数据接收并处理。我们可以在工程的app.att.c文件中找到my_Attributes[]变量,其中记录了各个Service的Characteristic,如图22所示。 
 
图22 特征一览  
其中有常见的Service,例如Device Information,Battery Service等,也有自订的Service SPP。查看Characteristic结构体,如图23所示。 
 
图23 特征结构  
attNum:可能是Characteristic的编号或索引; perm:表示Characteristic的权限; uuidlen:表示Characteristic的UUID长度,可能是2字节或16字节; attrLen:表示Characteristic的值的长度; *uuid:指向UUID的指针; *pAttrValue:指向值的指针,存储Characteristic得实际数据; w:写操作的回调函数; r:读操作的回调函数; 查看Service SPP,如图24所示。 图24 SPP特征值  
选取UUID为TelinkSppDataClient2ServerUUID的Characteristic,具体UUID如图25所示。 图25 SPP特征值UUID  
接着在这个Characteristic的写入回调函数中添加代码,当接收到新数据时,就翻转开发板上的蓝灯,并通过串口发送接收到的数据,如图26所示。 图26 接收回调函数  
打开BLE调试助手,连接开发板,如图27所示。 图27 BLE调试助手连接结果  
可以看到这个Characteristic的UUID与程序里的设定相同。向这个Characteristic发送数据,如图28所示。 图 28发送数据 可以看到开发板上的蓝灯闪烁,如图29所示。 图 29接收数据蓝灯闪烁  
使用串口工具连接开发板的PC4(UART0_TX)和PC5(UART0_RX)引脚,可以从电脑端的串口接收程序看见接收到的数据,如图30所示。 图30 串口接收数据  
  
 
 |