当前位置: 代码迷 >> Wireless >> 蓝牙BC6的HCI指令初始化后无法搜索到四周蓝牙设备
  详细解决方案

蓝牙BC6的HCI指令初始化后无法搜索到四周蓝牙设备

热度:479   发布时间:2016-04-28 09:33:37.0
蓝牙BC6的HCI指令初始化后无法搜索到周围蓝牙设备!
各位大虾好!
小弟目前正在做蓝牙HCI层开发,用的CSR的BlueCore6芯片,目前可以用串口发送BCSP包而且相互都可以响应,我的指令初始化过程如下:
首先是互相同步的包:
--------------------------------------------------------------------------------
收到: C0 40 41 00 7E DA DC ED ED C0
发出: C0 00 41 00 BE DA DC ED ED C0 
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
收到: C0 40 41 00 7E AC AF EF EE C0
发出: C0 00 41 00 BE AC AF EF EE C0 
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
收到: C0 40 41 00 7E AD EF AC ED C0
发出: C0 00 41 00 BE AD EF AC ED C0 
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
收到: C0 40 41 00 7E DE AD D0 D0 C0
发出: C0 00 41 00 BE DE AD D0 D0 C0 
--------------------------------------------------------------------------------



我这个设备是初始化为主设备:
然后是Read_BD_ADDR包:
--------------------------------------------------------------------------------
<<命令[Read_BD_ADDR][OGF:04 OCF:09]:
发出: C0 00 35 00 CA 09 10 00 C0 
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
收到: C0 C1 C5 00 79 0E 0A 01 09 10 00 A5 A5 00 5B 02 00 C0
>>指令完成事件:
#Num_HCI_Command_Packets  [1字节]  值:01 
#Command_OpCode           [2字节]  值:09 10 
#----指令[Read_BD_ADDR][OGF:04 OCF:09]返回参数:
#----Status    [1字节]  值:00 
#----BD_ADDR   [6字节]  值:A5 A5 00 5B 02 00 
发出: C0 10 00 00 EF C0 
--------------------------------------------------------------------------------


然后是Read_Buffer_Size的包:
--------------------------------------------------------------------------------
<<命令[Read_Buffer_Size][OGF:04 OCF:05]:
发出: C0 00 35 00 CA 05 10 00 C0 
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
收到: C0 C2 D5 00 68 0E 0B 01 05 10 00 36 01 40 0A 00 08 00 C0
>>指令完成事件:
#Num_HCI_Command_Packets  [1字节]  值:01 
#Command_OpCode  [2字节]  值:05 10 
#----指令[Read_Buffer_Size][OGF:04 OCF:05]返回参数:
#----Status  [1字节]  值:00 
#----HCI_ACL_Data_Packet_Length  [2字节]  值:36 01 
#----HCI_SCO_Data_Packet_Length  [1字节]  值:40 
#----HCI_Total_Num_ACL_Data_Packets  [2字节]  值:0A 00 
#----HCI_Total_Num_SCO_Data_Packets  [2字节]  值:08 00 
发出: C0 18 00 00 E7 C0 
---------------------------------------------------------------------------------

然后是Inquiry包去搜索周围的蓝牙设备:
---------------------------------------------------------------------------------
<<命令[Inquiry][OGF:01 OCF:01]:
#----LAP  [3字节]  值:33 8B 9E 
#----Inquiry_Length  [1字节]  值:0A 
#----Num_Response  [1字节]  值:08 
发出: C0 00 85 00 7A 01 04 05 33 8B 9E 0A 08 C0 
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
收到: C0 C4 65 00 D6 0F 04 00 01 01 04 C0
>>指令状态事件:
#Status  [1字节]  值:00 
#Num_HCI_Command_Packets  [1字节]  值:01 
#Command_OpCode  [2字节]  值:01 04 
#----指令[Inquiry][OGF:01 OCF:01]返回状态.
发出: C0 28 00 00 D7 C0 
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
收到: C0 C5 35 00 05 01 01 00 C0
>>查询完成事件:
#Status  [1字节]  值:00 
#Num_Responses  [1字节]  值:00 
发出: C0 30 00 00 CF C0 
---------------------------------------------------------------------------------

但是很遗憾没有任何查询结果事件收到,也就是搜索不到周围任何蓝牙设备。但是周末至少有2个蓝牙设备,因为我用我笔记本的蓝牙可以搜索到两个。我若把BC6初始化为从设备,笔记本也搜索不到它。不知道为何,我已经试了三块BC6芯片了都是如此所以基本排除了芯片故障。我觉得是我初始化指令不对,或者少了某些指令,卡在这里好多天,没有头绪。。。。望大虾们指教,或者同行的弟兄们也可以加我的QQ:84511509,互相帮助,十分感谢!!
------解决方案--------------------
ConnectionWriteScanEnable(hci_scan_enable_inq_and_page);加这个才能搜索到。一个主设备连接2个从设备,用SPP进行通信。怎么设置两个SPP呢?
  相关解决方案