This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2640R2F Peripheral请求Central进行连接参数更新造成的连接断开问题

Other Parts Discussed in Thread: CC2640R2F, SIMPLELINK-CC2640R2-SDK, BLE-STACK

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