TI工程师,您好
我使用IT原版BLE-STACK V3.0.1 (Support for CC2640R2F)(SIMPLELINK-CC2640R2-SDK_1.40.00.45)(20 Jul 2017)安装的2个工程做连接参数更新实验:
C:\ti\simplelink_cc2640r2_sdk_1_40_00_45\examples\rtos\CC2640R2_LAUNCHXL\blestack\simple_central
C:\ti\simplelink_cc2640r2_sdk_1_40_00_45\examples\rtos\CC2640R2_LAUNCHXL\blestack\simple_peripheral
我在simple_central工程中做了如下修改:
Poject-Option-C/C++ Compiler-Preprocessor
BOARD_DISPLAY_USE_UART_ANSI=0
加入了FPGA_AUTO_CONNECT
这样Central就能自动连接Peripheral
然后,我用GPIO24,GPIO25连接USB-COM,并用串口助手软件观察输出信息。
首先,我对两个工程的源代码不做任何改变,输出如下:
BLE Central
0x546C0EB8255F
Initialized
Discover ->
Discovering...
Devices Found 1
Connecting
0xB0912269427B
Connected
0xB0912269427B
GATT Read/Write ->
<- Next Option
MTU Size: 23
MTU Size: 65
Simple Svc Found
最后一条输出后一直保持,这说明连接一直持续,没有断开
但是,当我修改simple_peripheral.c Line 111
从
#define DEFAULT_ENABLE_UPDATE_REQUEST GAPROLE_LINK_PARAM_UPDATE_WAIT_REMOTE_PARAMS
到
#define DEFAULT_ENABLE_UPDATE_REQUEST GAPROLE_LINK_PARAM_UPDATE_INITIATE_BOTH_PARAMS
输出信息变为:
Initialized
Discover ->
Discovering...
Devices Found 1
Connecting
0xB0912269427B
Connected
0xB0912269427B
GATT Read/Write ->
<- Next Option
MTU Size: 23
MTU Size: 65
Simple Svc Found
Param Update: 0
Disconnected
Reason: 8
Discover ->
其中后面的黄色背景信息说明,central端收到了peripheral端的更新请求,过了大概10多秒钟,连接就断开了
您能帮我查一下原因吗?
我查了一下,在simple_central.c中,有这样一行:
#define DEFAULT_ENABLE_UPDATE_REQUEST GAPCENTRALROLE_PARAM_UPDATE_REQ_AUTO_ACCEPT
这说明,central应该能够自动接受peripheral的连接参数更新请求。
以下是package sniffer抓包:
这是抓包软件保存下来的数据,您可以用package sniffer打开来观看:
您如能帮我找到原因,我不胜感激!
谢谢!
Charles Bai