主题中讨论的其他器件: CC2564、 MSP430F5438A、 MSP430F5529、 CC2564MODN、 CC2564C
几年前、我们在 MSP430实验板的 LSR 模块中、在原始 CC2564上成功运行了 SPP 服务器、该服务器使用经典蓝牙(BT)。 我们现在正在使用 CC2564MODA 对产品进行最终测试、该 CC2564B 包含 CC2564B、不再运行实验板、并且 SPP 服务器和客户端存在问题。 我们已将其中一个产品配置为 SPP 服务器、将另一个配置为 SPP 客户端。 我们可以成功配对、没有任何问题、但对 SPP_Open_Remote_Port ()的调用返回0xFFB8 =-72、即 BTPS_ERROR_RFCOMM_Unable 至_connect_TO_REMOTE_DEVICE。 我们捕获了所有 HCI、GAP 和 SPP 事件、并且没有 SPP 事件。 只有与配对相关的 GAP 和 HCI 事件。 具体而言、配对完成后没有 HCI 事件回调。 我想对 SPP_Open_Remote_Port()的调用会导致某种 HCI 活动。
我们使用的是几个月前发布的最新 CC2564B 补丁(服务包)文件版本1.8。 由于我们目前仅使用经典 BT (而非 LE)、BasePatch 阵列不包含"#ifdef _support_low_energy__"或"#ifdef __support_AVPR__"部分。
CC2564B 是否可能未正确初始化? 但是、如果是这种情况、安全简单配对是否不会出现问题?
以下是来自配对的所有 HCI 回调事件的列表。 在调用 SPP_Open_Remote_Port()之后没有发生其他回调。
|
事件 数字 |
枚举值 十六进制 |
枚举值 十进制 |
HCI 事件 |
|
1 |
02 |
2. |
etConnection_Complete_Event |
|
2. |
23 |
35. |
etRad_Remote_Extended_Features_Complete_Event |
|
3. |
14. |
20. |
etLink_Key_Request_Event |
|
4. |
29. |
41. |
etIO_Capability 请求事件 |
|
5. |
2A |
42. |
etIO_Capability 响应事件 |
|
6. |
2b. |
43. |
etUser_Confirmation_Request_Event |
|
7. |
2e |
46. |
etSimple_Pairing_Complete_Event |
|
8. |
15. |
21. |
etLink_Key_Notification_Event |
|
9. |
05 |
5. |
etAuthentication_Complete_Event |
|
10. |
04 |
4. |
etDisconnection_Complete_Event |
|
11. |
02 |
2. |
etConnection_Complete_Event |
|
12. |
23 |
35. |
etRad_Remote_Extended_Features_Complete_Event |
|
13. |
14. |
20. |
etLink_Key_Request_Event |
|
14. |
05 |
5. |
etAuthentication_Complete_Event |
|
15. |
07 |
7. |
etEncryption_Change_Event |
|
16. |
04 |
4. |
etDisconnection_Complete_Event |
我也可以提供所有 GAP 回叫、但再说一次、它们都与配对相关、在 SPP_Open_Remote_Port ()之后不会发生其他 GAP 回调。
以下是进行配对并尝试打开远程设备上的串行端口的基本呼叫。 两者都在提供的 CCS COFF 库 libBluetopia.a 中使用 Stonestreet One Bluetopia SDK v1.5R2链接:
BluetoothStackID = BSC_Initialize (&HCI_DriverInformation、BSC_initialize_flag_no_SCO);
HCI_Register_Event_Callback (BluetoothStackID、HCI_Event_Callback、(无符号长整型) NULL);
GAP_SET_Pairable_Mode (BluetoothStackID、pmPairableMode_EnableSecureSimplePairing);
GAP_Register_Remote_Authentication (BluetoothStackID、GAP_Event_Callback、(无符号长整型) 0);
GAP_Initiate_Bonding (BluetoothStackID、Remote_BD_Addr、btDedated、GAP_Event_Callback、(无符号长整型) 0);
上述所有内容均返回状态正常、并且我们验证配对已成功完成。
远程服务器端口已在 ServerPort 4上打开,因此下面的调用使用此相同的端口号:
SPP_Open_Remote_Port (BluetoothStackID、Remote_BD_Addr、4、SPP_Event_Callback、(无符号长整型) 0);
上述调用返回错误-72、即在10.7ms 内返回 BTPS_ERROR_RFCOMM_Unable 至_connect_TO_REMOTE 设备。
如果需要、我们可以为其他协议(如 L2CAP 和 RFCOMM)注册回调、如果捕获回调会有所帮助。