CH582使用125kbps通讯

我参考了你们的例程BLE5.3 使用1M 2M 500K或者 125Kbps通讯 - debugdabiaoge - 博客园 (cnblogs.com)
修改后打印log 显示开启广播 但手机使用nRF Connect这个软件根本搜索不到蓝牙设备 请问咋搞

使用安卓手机多尝试一下,我这里测试按照博客修改无问题。

1.png


我的库是1.41的 用安卓手机 用另一个582作主机都搜索不到


PHY为2M的时候就可以找到


使用手机测试,可以多找几部手机测试看看情况,有的手机可能无法搜索大全。

使用582作为主机,我们这里测试一下给予回复。


582主机想要搜索125kbps的从机 主机需要怎么设置


使用582主机搜索125kbps设备需要这样修改,如图在主机初始化代码中添加红框中代码,

emobile_2022-07-29_15-00-09.png

在这边可以获取mac:

emobile_2022-07-29_15-00-35.png

如图:

emobile_2022-07-29_15-03-04.png



按照上面的方法成功扫描到扩展广播并连接上,但出现了一些问题,如下:

  1. 偶尔会出现扫描时间比较久的情况 主机的扩展广播扫描间隔为1S 请问从机的扩展广播间隔可以调吗

  2. 连接上之后会出现周期性的断连状况 主机和从机距离拉到3-5米之后更容易断连 主机修改了125K的连接间隔GAP_SetParamValue(TGAP_CONN_EST_CODED_INT_MIN, 20)和?GAP_SetParamValue(TGAP_CONN_EST_CODED_INT_MAX, 80)之后情况有好转,同样请问从机这边有没有类似的125K连接参数需要修改或者主机还需要配置什么来提高连接的稳定性

  3. 主机给从机发送数据也就是使用GATT_WriteCharValue()函数偶尔会出现blepending的情况 距离越远出现的次数越高 实际也就在3-5米左右就会出现blepending 同时会伴随着断连的情况出现 请问有没有改善的方法可以提高发送数据的稳定性

??


从机的默认广播间隔是50ms,如果没有对相关代码的参数进行修改,

GAP_SetParamValue(TGAP_DISC_ADV_INT_MIN, advInt);

GAP_SetParamValue(TGAP_DISC_ADV_INT_MAX, advInt);

遇到扫描较久一般是从机在那段时间没有广播,可以看看从机的打印log,另外也可以将主机的扫描时长调短一点,如100ms,

使用GATT_WriteCharValue()函数偶尔会出现blepending的情况,可以使用最新的例程看看有没有改善,也可能和发送的间隔和数据量有关,

还有断连的原因又是什么,从你的描述上看,0x08连接超时的可能性比较大,测试的板子是自己做的还是我们的demo板,使用demo板做测试没有复现以上情况。




板子用的是自己做的 大部分情况都是0x08连接超时,请问如果用你们的开发板正常情况下125k的频段通讯距离一般多远

另外请教一下GAPROLE_PHY_TX_SUPPORTED和GAPROLE_PHY_RX_SUPPORTED这个参数ID怎么用 放在主机还是从机使用;

GAPRole_UpdatePHY()的第二个形参是啥意思 怎么用


在1M下通讯距离在100多米,125Kbps下会好一些,这个和环境,天线方向,周围干扰有很大的关系,

uint8_t? phy_bit_byte =GAP_PHY_BIT_LE_CODED;

GAPRole_SetParameter(GAPROLE_PHY_TX_SUPPORTED, sizeof(uint8_t), &phy_bit_byte);

正常更新phy按照

PRINT("PHY Update %x...\n", GAPRole_UpdatePHY(peripheralConnList.connHandle, 0, GAP_PHY_BIT_LE_CODED,GAP_PHY_BIT_LE_CODED, 0));

就可以。


如果仅仅只想作为125K的广播 不做从机 应该怎么配置


这样的话建议在broadcast中去使用,将adv_type = GAP_ADTYPE_EXT_NONCONN_NONSCAN_UNDIRECT;这样设置就可以了,

GAPRole_SetParameter(GAPROLE_ADV_EVENT_TYPE,sizeof(uint8_t),&adv_type);

GAP_SetParamValue(TGAP_ADV_SECONDARY_PHY,GAP_PHY_VAL_LE_CODED); //125K

GAP_SetParamValue(TGAP_ADV_PRIMARY_PHY, GAP_PHY_VAL_LE_CODED);//125K



那主机的配置的呢 想要搜125K仅广播的设备和搜125K从机设备配置一样吗


是的,和原先主机搜索配置是一样的。


作为125k从机的时候 主机能够搜索到从机 但是读出来的广播数据是000000 请问从机的广播数据怎么设置


只有登录才能回复,可以选择微信账号登录