SDK 4.20 例程 simple_periphal 修改的;
你好我使用例程修改自己的项目,在static void SimplePeripheral_processCharValueChangeEvt(uint8_t paramI)函数中做了比较多的数据处理;
同时还有一个100ms的notfy广播,出现的蓝牙异常断开,我猜想可能是数据接收过程中处理的耗时比较久;
不知道在接收过程中的处理数据最长耗时应该多少,每个周期函数应该最长耗时多少:
我在修改例程的间隔设置为如下:
// Address mode of the local device
// Note: When using the DEFAULT_ADDRESS_MODE as ADDRMODE_RANDOM or
// ADDRMODE_RP_WITH_RANDOM_ID, GAP_DeviceInit() should be called with
// it's last parameter set to a static random address
#define DEFAULT_ADDRESS_MODE ADDRMODE_PUBLIC
// General discoverable mode: advertise indefinitely
#define DEFAULT_DISCOVERABLE_MODE GAP_ADTYPE_FLAGS_GENERAL
// Minimum connection interval (units of 1.25ms, 80=100ms) for parameter update request
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 80
// Maximum connection interval (units of 1.25ms, 104=130ms) for parameter update request
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 104
// Slave latency to use for parameter update request
#define DEFAULT_DESIRED_SLAVE_LATENCY 5
// Supervision timeout value (units of 10ms, 300=3s) for parameter update request
#define DEFAULT_DESIRED_CONN_TIMEOUT 724
异常断块好像好一点了,主要修改了 DEFAULT_DESIRED_SLAVE_LATENCY 和 DEFAULT_DESIRED_CONN_TIMEOUT :,不知道我这样的修改正不正确;
还有,资料说 DEFAULT_DESIRED_CONN_TIMEOUT>(DEFAULT_DESIRED_SLAVE_LATENCY+1)*时间间隔;
这里的时间间隔是不是最大时间间隔,还有这里的DEFAULT_DESIRED_SLAVE_LATENCY是里面的值带入计算,还是具体时间带入计算;
最好有蓝牙异常断开的处理方法相关的资料,谢谢
Viki Shi:
加大连接间隔试试。DEFAULT_DESIRED_CONN_TIMEOUT>(DEFAULT_DESIRED_SLAVE_LATENCY+1)*时间间隔;
这里的“时间间隔”是最大连接间隔,一般连接间隔是一个区间,RF CORE会根据具体情况选择区间内的值
DEFAULT_DESIRED_SLAVE_LATENCY是一个值
Kevin Qiu1:
看下这里关于连接参数的说明:e2echina.ti.com/…/190595
也可以看下这里:dev.ti.com/…/node