嗨
我试图使BLE dongle与DA14583使用DA1458x_DSPS_v_5.150.2
我的狗的一个规格是“可以在操作过程中改变目标BT设备(从设备)”
我可以通过修改分配目标BT地址
Void user_on_adv_report_ind(struct gapm_adv_report_ind const * param) in user_sps_host.c
我改变了这个函数接受特定的BT地址(新做的全局变量)
我也可以通过uart改变这个全局变量(我确认了全局变量改变)
但我一直无法断开之前的BT连接,并使用新的BT地址重新连接
我试过用这些功能断开当前的连接
app_disconnect_op ();app_gapm_reset_op ();app_easy_gap_disconnect (1);
他们中的一些人实际上断开了连接,以便我可以发现被释放的设备
但狗没有重新连接到新设备,甚至它似乎停止了
我也试过
platform_reset (RESET_AND_LOAD_FW)
重启设备,但没有工作(=当前连接断开,没有进一步响应)
请给出一个指南,以改变的BT地址重新启动连接
设备:
嗨,黔东南州金,
您可以尝试发出GAPM_RESET_CMD命令并重新配置设备。你只需要发出一个GAPM_RESET_CMD,有一个现成的函数来做这个,这个函数就是app_gapm_reset_msg_create()。完成此操作后,设备将获得一个GAPM_CMP_EVT (gapm_cmp_evt_handler()函数),操作参数设置为GAPM_RESET。所以,一旦你重置了你的设备,你应该用新的BD地址重新配置它。但是,您能再详细说明一下您的应用程序的规格吗?您想先断开连接,然后更改BD地址,然后再用新的BD地址发布广告?我理解对了吗?您可以配置bd地址,应用程序从NVDS结构中获取bd地址,并且bd地址可以从CFG_NVDS_TAG_BD_ADDRESS中的da1458x_config_advanced.h文件中配置,如果您更改了这个,那么您的设备的bd地址也应该更改。SDK首先检查OTP头设备id字段是否被烧毁,包含一个不同于0的值。如果Header的值不等于0,这就是设备将使用的地址。
谢谢,PM_Dialog