CH579蓝牙键盘如何断开蓝牙连接进入广播模式

使用CH579M制作蓝牙键盘,如何断开当前的蓝牙连接,并进入广播模式。

测试:

  1. 使用函数RF_BondingErase();和HidDev_SetParameter(HIDDEV_ERASE_ALLBONDS, 0, NULL);删除绑定信息。

  2. 然后重启SYS_ResetExecute();。

如果仅第一步操作,有时候无法进入广播模式,或广播模式中无法连接成功。以及,删除绑定信息的函数,似乎是删除所有的绑定信息,但我希望是只删除当前的连接,另外的几个MAC地址的连接信息仍保存。

求助:CH579M蓝牙键盘,如何断开当前蓝牙连接并进入广播模式?并保持其它MAC地址的绑定信息不被删除。


你在上面使用的ERASE是对2.4G的,蓝牙的是另一个,如图:

2.png这里可以删除一个,或者所有的绑定信息。


删除了当前的绑定信息,主机那里并没有作相应的修改,主机还会根据以前的MAC地址去进行连接,所以可能会出现连上又断开等问题。你可以这样,先删除绑定信息,然后对MAC进行修改,这样主机就搜索不到这个MAC地址了,也就不会出现长处于广播模式、无法连接等问题了。


谢谢,已解决


出现了新问题,我是用如下代码进行删除单个绑定,但是我无法判断出我当前连接的是第几个bond

tmos_snv_read( mainRecordNvID(0), 6, bond_buf+1);
// 删除绑定信息
GAPBondMgr_SetParameter( GAPBOND_ERASE_SINGLEBOND, B_ADDR_LEN + 1, bond_buf );// 当前绑定


已解决,不同的设备使用不同的SNV地址即可。

但有个小疑问,SNV的size,即SNVBlock,最小必须是512吗?我设置成256时,删除所有绑定信息,会把另外的SNV地址也删除了。


可以设置成256的,因为dataflash页擦除就是256,不能擦是因为回调函数的原因

image.png

image.png

image.png

原来默认512可以寸3个绑定信息,所以这个地方就简单写了。
你可以把擦函数改成256一擦,一个地址存1个就行。


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