You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Seeed Studio XIAO BLE短名称扫描过滤器添加失败(ENOMEM错误)

Zephyr BLE短名称扫描过滤:ENOMEM错误与配置问题

环境与需求

  • 系统:Windows
  • 开发工具:VS Code + nRF Connect扩展
  • 开发板:Seeed Studio XIAO nRF52840
  • 目标:基于<bluetooth/scan.h>实现带短名称过滤的BLE扫描功能

预期实现步骤

按照Zephyr BLE扫描API的逻辑,实现过滤扫描的步骤如下:

  • 通过bt_scan_filter_add将过滤器添加至扫描参数(过滤器结构需参考源码定义)
  • 通过bt_scan_filter_enable启用过滤器,指定所需过滤模式
  • 通过bt_scan_cb_register注册回调函数,其中scan_filter_match回调负责定义过滤匹配后的处理逻辑
  • 通过bt_scan_start启动扫描

遇到的问题

  1. 内存分配失败(ENOMEM -12)
    调用bt_scan_filter_add添加短名称过滤器时,返回ENOMEM错误。已尝试调整内存相关配置:

    CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096
    CONFIG_MAIN_STACK_SIZE=4096
    CONFIG_HEAP_MEM_POOL_SIZE=8192
    CONFIG_LOG_BUFFER_SIZE=4096
    
  2. 配置项无效
    参考相关资料得知需通过BT_SCAN_SHORT_NAME_CNT配置短名称过滤器数量,但在proj.config中添加BT_SCAN_SHORT_NAME_CNT=1时,工具提示:

    ignoring malformed line 'BT_SCAN_SHORT_NAME_CNT=1'
    

    且查询Zephyr配置项列表,未找到该配置标识。

求助

请说明上述错误的原因,以及如何正确配置并实现带短名称过滤的BLE扫描功能。

内容的提问来源于stack exchange,提问作者Harmandeep Dubb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 18:13:14