1886|0

274

帖子

8

TA的资源

纯净的硅(初级)

楼主
 

【NXP Rapid IoT评测】+ 蓝牙操作 (3 接收数据) [复制链接]

前几个帖子说了怎么使用蓝牙将数据传输出去,这篇帖子说说怎么接收数据。
首先需要大概说下蓝牙协议栈的结构。BLE设备中的数据是以 Service 分组,每个Server中可以包含若干个Characteristic 。我们的数据就是每个Characteristic中的值。主机通过向Characteristic 中写数据,实现了蓝牙数据的接收。

那么在例程中如何接收数据,并对数据做处理呢?

在ble_shell.c 的 void BleApp_DemoRpkWriteCallback(void *data) 函数中,实现对接收到的数据的处理。比如我们想把接收到的数据显示在屏幕上,那么就要在对应的Characteristic里添加函数。代码如下:

  1. else if (rcvData->AttributeWrittenEvent.Handle == hValueString)
  2.     {
  3.             if (rcvData->AttributeWrittenEvent.ValueLength >= 1){
  4.                     GUI_Clear();
  5.                     GUI_DispStringAt((char *)rcvData->AttributeWrittenEvent.Value,0,0);
  6.             }else{
  7.                     status = 0xd;
  8.             }
  9.     }
复制代码


当我们对应的Characteristic接收到数据之后,就会调用BleApp_DemoRpkWriteCallback()回调函数,然后通过判断句柄AttributeWrittenEvent.Handle ,确定进入哪个处理函数中。

此内容由EEWORLD论坛网友manhuami2007原创,如需转载或用于商业用途需征得作者同意并注明出处



此帖出自无线连接论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表