你好,我使用BLE5.0的协议栈,cc2642做为central。在调试中发现,无法发现从设备。
1. 从设备发送广播地址正常。
2. central设备,扫描正常,但是扫描到的地址都是ADDRTYPE RANDOM。我的地址是ADDRTYPE_PUBLIC。
请问一下,这个是需要那个参数配置异常还是需要怎么配置?
谢谢!
2. 这种从设备广播正常,是否可以直接connect,不在扫描?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
首先,如果外围设备处于广播模式,则无法连接到外围设备。这只会发送广告。
您可以在include文件夹的gap.h文件中找到地址设备的定义。
关于您的第三点,不,您不能直接将中心连接到外围设备,因为您需要在连接之前进行扫描。
/// Address modes to initialize the local device
typedef enum
{
ADDRMODE_PUBLIC = 0x00, //!< Always Use Public Address
ADDRMODE_RANDOM = 0x01, //!< Always Use Random Static Address
#if defined(BLE_V42_FEATURES) && (BLE_V42_FEATURES & PRIVACY_1_2_CFG)
/// Always Use Resolvable Private Address with Public Identity Address
ADDRMODE_RP_WITH_PUBLIC_ID = 0x02,
/// Always Use Resolvable Private Address with Random Identity Address
ADDRMODE_RP_WITH_RANDOM_ID = 0x03,
#endif // PRIVACY_1_2_CFG
} GAP_Addr_Modes_t;
1. 我外设配置的是ADDRMODE_PUBLIC = 0x00, //!< Always Use Public Address这个模式。
#define GAP_PROFILE_PERIPHERAL 0x04 初始化配置的是这个
2. central设备是 #define GAP_PROFILE_PERIPHERAL 0x04 与#define GAP_PROFILE_CENTRAL 0x08 同时配置。
现在是作为central设备时建联,该central作为从设备的时候可以与另外的主设备建联。
仿真的时候看到,如问题提出的,扫描不到从机发过来的地址。只能够看到 ADDRMODE_RANDOM = 0x01 这个地址类型的广播包。
GAP_DeviceInit();在这个函数中去goto对于模式的定义,一步一步去找到最后定义的值,进行修改。
注意mian.c文件中的multi_role_createTask()函数中Task_construct(&mrTask, multi_role_taskFxn, &taskParams, NULL);这个语句里multi_role_taskFxn这个函数goto过去,进行配置,基本改到最后就到GAP.h文件了。具体的可以参考API有以下函数文件说明
dev.ti.com/.../group___g_a_p.html