主题中讨论的其他器件:CC2640、 SysConfig
大家好!
我使用的 是 CC2642、SDK_CC26X2_R2_4_40_00_44、用作项目起点的示例是 multi_role、经过大幅修改。 该板是定制板。
此产品不断扫描两种不同类型的从属,它也可以自己从智能手机连接。
必须扫描并(最终)连接的两种从器件(我们将其称为"A"和"B")也是基于 CC2640_R2的定制板。
从器件"A" 经常进行广播、一旦 multi_role 扫描找到它、就会建立并无限期保持连接。 不会有问题。
从器件"B"用作标签、因为其由电池供电、 每3秒进行一次广播(在三个通道37、38和39上)。
当 multi_role 附近没有从 B 时、multi_role 扫描开启3.5秒、关闭0.2秒、这是无限期的。
扫描期间的 multi_role 找到从器件"B"后、 我更改扫描参数时序、以便 使用从器件 B 广播 sincronize 多角色扫描(这样可以从 从从从器件"B"中查找每个下一个广播)。
因此、在 multi_role 找到第一个从站 B 广播后、便会设置 multi_role 扫描:
-关闭2.8秒(因为从 B 的下一个通告将不会早于3秒到达)
那么
-只需一段时间就可以得到下一个广告,因此理想情况下只需0.2秒。 ( 如果没有发现广告、最长打开3.5秒)。
等等
扫描间隔和扫描风都设置为16 (10毫秒)
此扫描与两个从器件的 white_list
为扫描调用的函数为 GapScan_enable (0、T_ScanDuration、DEFAULT_MAX_SCAN_RES);
我将 DEFAULT_MAX_SCAN_RES 从25记录到250、但由于我正在使用白名单、并且由于我在发现从 A 或 B 广告时停止扫描、我认为此变量根本无关 (我也不使用 multi_role_addsScanInfo 函数,该函数要求该变量不大于某个值)。
问题是,通常,扫描不是一个,而是三或四广告的 Salve B 连续。
我尝试了许多不同的扫描和间隔值,并且(同时认为 multi_role 必须从智能手机连接,并且必须保持与从器件 A 的连接)这两个值16似乎都是最好的选择。
我还在扫描期间检查了无线电的行为、以确保一切都按预期工作、使用
//将 LNA 使能引脚 RFC_GPO0映射到 DIO06
IOCPortConfigureSet (DIO06、IOC_PORT_RFC_GPO0、IOC_IOMODE_NORMAL);
我没有发现任何问题:当我触发"开启扫描"时、对讲机工作正常。
我还尝试了 multi_role 作为中央设备、不使用 peripheral_CFG 配置。 但这并不能带来更好的结果。
如果有一种方法可以获得更好的结果、或者我缺少什么、您会怎么办?
非常感谢您的支持
费德里科