STM32
直播中

陈韵瑄

7年用户 985经验值
私信 关注
[问答]

求助,在STM30WB55中如何让P2P_Client同时连接P2P_Sever1和P2PSever2等多个设备?

现在是这样的,首先我手上拥有USB_Dongle+Nucleo Board以及自己设计的开发板(和USB_Dongle兼容),现在想使用USB_Dongle作为P2P_Client,其他两块板子分别为Sever1和Sever2。目前只能实现Client与其中任意一块链接,但不能实现多机的链接。
app_conf.h中配置如下,
define CFG_MAX_CONNECtiON                      2

define CFG_DEV_ID_P2P_SERVER1                  (0x83)

define CFG_DEV_ID_P2P_SERVER2                  (0x84)

app_ble.c如下:
if (adlength >= 7    adv_report_data[k + 2] == 0x01){ / ST VERSION ID 01 /APP_DBG_MSG("--- ST MANUFACTURER ID --- n");switch (adv_report_data[k + 3]){   / Demo ID /case CFG_DEV_ID_P2P_SERVER1: / End Device 1 /APP_DBG_MSG("-- SERVER DETECTED -- VIA MAN IDn");BleApplicationContext.DeviceServerFound = 0x01;SERVER_REMOTE_BDADDR[0] = le_advertising_event->Advertising_Report[0].Address[0];SERVER_REMOTE_BDADDR[1] = le_advertising_event->Advertising_Report[0].Address[1];SERVER_REMOTE_BDADDR[2] = le_advertising_event->Advertising_Report[0].Address[2];SERVER_REMOTE_BDADDR[3] = le_advertising_event->Advertising_Report[0].Address[3];SERVER_REMOTE_BDADDR[4] = le_advertising_event->Advertising_Report[0].Address[4];SERVER_REMOTE_BDADDR[5] = le_advertising_event->Advertising_Report[0].Address[5];break;case CFG_DEV_ID_P2P_SERVER2: / End Device 2 /APP_DBG_MSG("-- SERVER DETECTED -- VIA MAN IDn");BleApplicationContext.DeviceServerFound = 0x02;SERVER_REMOTE_BDADDR[0] = le_advertising_event->Advertising_Report[0].Address[0];SERVER_REMOTE_BDADDR[1] = le_advertising_event->Advertising_Report[0].Address[1];SERVER_REMOTE_BDADDR[2] = le_advertising_event->Advertising_Report[0].Address[2];SERVER_REMOTE_BDADDR[3] = le_advertising_event->Advertising_Report[0].Address[3];SERVER_REMOTE_BDADDR[4] = le_advertising_event->Advertising_Report[0].Address[4];SERVER_REMOTE_BDADDR[5] = le_advertising_event->Advertising_Report[0].Address[5];break;
default:break;}


回帖(1)

醉清歌

2024-4-1 17:11:48
要让P2P_Client同时连接多个设备,在app_conf.h中需要配置正确的CFG_DEV_ID_P2P_SERVER1、CFG_DEV_ID_P2P_SERVER2等设备ID。

当前的配置中,你只配置了一个设备ID为CFG_DEV_ID_P2P_SERVER1 (0x83),所以P2P_Client只能连接这一个设备。

你需要修改app_conf.h中的配置,增加CFG_DEV_ID_P2P_SERVER2等其他设备的ID。例如:

#define CFG_DEV_ID_P2P_SERVER1  (0x83)
#define CFG_DEV_ID_P2P_SERVER2  (0x84)
#define CFG_DEV_ID_P2P_SERVER3  (0x85)
...

然后,还需要修改代码来处理多个设备的连接。这个要根据具体的程序逻辑来修改,例如可以使用循环来依次连接多个设备:

for (uint8_t dev_id = CFG_DEV_ID_P2P_SERVER1; dev_id <= CFG_DEV_ID_P2P_SERVER3; dev_id++) {
    // 连接设备的代码
    ...
}

这样就可以实现P2P_Client与多个设备的连接了。注意,根据你的具体情况可能还需要修改其他代码以支持多设备连接。
举报

更多回帖

×
20
完善资料,
赚取积分