SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机、32位ARM Cortex-M0处理器、128kB Flash存储器、以及丰富的数字接口。SYD8801片上集成了Balun无需阻抗匹配网络、高效率DCDC降压转换器,适合用于可穿戴、物联网设备等。具体可咨询:http://www.syd-tek.com/
SYD8801蓝牙profile(UUID)的使用说明
SYD8801的profile(UUID)是通过专门的工具《SYD Service Utility》生成的(制作步骤请看:http://blog.csdn.net/chengdong1314/article/details/70138657),制作好后将得到《XXXXXXXXXX_Flash.txt》文件,比如《SYD8801EVB_Flash.txt》。然后通过《EVBUtility》工具把该文件烧录到芯片中(烧录步骤请看:http://blog.csdn.net/chengdong1314/article/details/70161095中的烧录Service文件相关内容)供SYD8801底层代码使用。SYD8801和主机之间的交互都以《XXXXXXXXXX_Flash.txt》文件的内容作为依据,比如在《XXXXXXXXXX_Flash.txt》里面没有定义UUID为0x0004的特性,当主机对蓝牙进行0x0004的特性进行访问的时候,SYD8801将返回错误的响应!
另外,《XXXXXXXXXX_Flash.txt》文件中定义的内容也是SYD8801底层协议栈上报相关事件的依据,比如当主机对SYD8801的UUID为0x0002的特性进行写操作的时候,SYD8801底层协议栈上报的内容将包括0x0002这个描述,以便上层应用明白当前写操作是针对UUID为0x0002这个特性。
蓝牙profile(UUID)的使用:
使用《SYD Service Utility》生成好profile(UUID)后,该工具将生成如下图的文件:
《SYD8801EVB_Flash.txt》是烧录到芯片中的文件,《SYD8801EVB_service.h》是专门给应用程序参考使用的文件。其内容如下:
这里写明了各个service以及特征和描述符的UUID定义以及handle,这些将在代码中有用。
协议栈上报事件的时候将会包含相应的UUID和handle,至于该UUID和handle具体是什么服务,有什么功能都是用户在《SYD Service Utility》中定义的,也就是说应用层关于《SYD Service Utility》的UUID定义以及handle的定义必须和协议栈协商一致,否则会出现混乱的情况。
应用层代码中使用到service以及特征和描述符的UUID定义以及handle大体上有四个地方,具体为:ble_evt_callback函数、ble_gatt_read函数、ble_gatt_write函数以及BLE_SendData函数,这里根据《SYD8801EVB_service.h》文件对手头的代码做相应的修改即可!
关于ble_evt_callback函数的说明和修改请看:http://blog.csdn.net/chengdong1314/article/details/73929998中的协议栈上报事件处理相关说明
关于BLE_SendData函数的说明和修改请看:http://blog.csdn.net/chengdong1314/article/details/76169279的BLE_SendData函数相关说明!
另外对于《SYD8801EVB_Flash.txt》和《《SYD8801EVB.txt》》文件的更深入说明请看:http://blog.csdn.net/chengdong1314/article/details/60870526