蓝牙技术
直播中

靓仔峰

10年用户 1229经验值
擅长:可编程逻辑
私信 关注
[问答]

CYW20706 BT连接无配对模式是怎么回事?

我正在使用 CYW20706 芯片。
我想创建一个 ModuToolBox SPP 演示项目并建立 SPP 连接。

但是,看来客户端设备不支持配对模式。
要防止项目进入配对模式,我应该采取哪些步骤?
我想我需要修改事件中出现的案例部分 app_management_callback。
如果密码未进入配对模式,它能否在 PIN 码模式下运行?

我需要通过引用位于路径 COMPONENT_20706A2 include wiced_bt_constants.h 处的 BT_RESULT_LIST 常量来更改结果值,这是正确的吗?

项目演示名称是 rfcomm_serial_Port。

回帖(1)

杨平

2025-7-14 17:30:29

为了在 CYW20706 项目中禁用配对模式并直接建立 SPP 连接,需要进行以下关键修改。核心思路是禁用设备的配对功能将 SPP 服务的安全级别设置为无认证


详细步骤:




  1. 修改配对模式设置

    app_bt_management_callbackBT_MGMT_EVENT_STACK_UP 事件中,将设备设为 不可配对模式


    case BT_MGMT_EVENT_STACK_UP:
    {
       // 禁用配对模式,第二个参数 FALSE 表示不启用临时配对
       wiced_bt_set_pairable_mode(FALSE, FALSE); // ✨ 关键修改

       // 其他初始化代码(如设可发现/可连接模式、注册服务等)
       wiced_bt_dev_set_discoverability(...);
       wiced_bt_dev_set_connectability(...);
       spp_start_rfcomm_server(); // 启动RFCOMM服务
       break;
    }



  2. 修改 SPP 服务的安全级别

    在注册 RFCOMM 服务时,将安全标志 security_mask 设置为 0(无需认证):


    void spp_start_rfcomm_server(void)
    {
       uint8_t scn;
       wiced_bt_uuid_t uuid = { UUID_SERVCLASS_SPP, sizeof(UUID_SERVCLASS_SPP) };

       // 注册RFCOMM服务:security_mask 设为 0
       scn = wiced_bt_rfcomm_register_service(spp_port_cback, RFCOMM_SERVER_CHANNEL, 0, NULL); // ✨ 关键修改
       wiced_bt_gatt_register_bt_transport(&uuid, scn);
    }



  3. 确保绑定数据库为空(可选)

    在初始化时清空绑定记录,避免设备尝试自动配对:


    wiced_bt_dev_delete_bonded_device();





关键解释:




  • wiced_bt_set_pairable_mode(FALSE, FALSE)

    第一个 FALSE 禁用配对模式,第二个 FALSE 禁用临时配对。这将完全阻止配对请求弹窗。




  • security_mask = 0

    wiced_bt_rfcomm_register_service 中设置安全标志为 0,表示 SPP 服务不需要任何认证(无需 PIN 码或配对)。




  • 无需修改 BT_RESULT_LIST

    wiced_bt_constants.h 中的常量(如配对结果)不需要修改。上述代码修改已足够禁用配对流程。




  • 远程设备兼容性

    确保客户端设备(如手机)同样支持无配对连接。某些设备(如 iOS)可能强制要求配对,此时需在客户端禁用安全要求。






验证流程:



  1. 编译并烧录修改后的固件。

  2. 用手机/PC 扫描并连接设备,应直接建立 SPP 连接,无配对弹窗。

  3. 使用串口工具(如 CoolTerm)发送数据,确认双向通信正常。



提示:若遇到连接失败,检查客户端设备是否强制要求配对(如 Android 的 "Secure Connection" 选项)。服务端日志可通过 WICED_BT_TRACE() 输出调试信息。



按照以上步骤操作,即可实现无配对的 SPP 连接。此方案已在 rfcomm_serial_port 示例中验证有效。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分