找回密码
 立即注册

微信扫码登录

查看: 12|回复: 0

[Others] 主从机蓝牙配对问题,选择B80B做从机,B85做主机

[复制链接]

2

主题

1

回帖

26

积分

英勇黄铜

积分
26
发表于 2 小时前 | 显示全部楼层 |阅读模式 来自 广东深圳
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: B80B与B85
驱动SDK版本: b80_ble_sdk 和tc_ble_sdk-4.0.2.1
我现在要用B85做主机连接遥控器B80B(做从机),同时B85保留后续做从机连接其他单片机的拓展空间,目前B85(蓝牙名为Bf101)和B80B(蓝牙名为Blr101)只要匹配蓝牙名互相确认正确,就可以建立蓝牙连接,并互相加入白名单,后续开机自动扫描建立连接,并可以传送对应数值。
B85匹配如下:


const u8        tbl_advData[] = {

         6,  DT_COMPLETE_LOCAL_NAME,                                 'B', 'f', '1',  '0', '1', // 设备名称内容(实际显示为"Bf10l")
         2,         DT_FLAGS,                                                                 0x05,                                          
         3,  DT_APPEARANCE,                                                 0x80, 0x01,          
         5,  DT_INCOMPLT_LIST_16BIT_SERVICE_UUID,        0x12, 0x18, 0x0F, 0x18,        // incomplete list of service class UUIDs (0x1812, 0x180F)
};


        switch (slavePairing.state)
        {
                case PAIRING_TRIGGERED:



                    // 初始化BLE栈
                        u8 mac_public[6] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06};; //自定义MAC地址
                        blc_ll_initStandby_module(mac_public);       

                        blc_smp_smpParamInit();
                        blc_smp_setSecurityLevel_master(LE_Security_Mode_1_Level_3);
                        blc_smp_setBondingMode_master(Bondable_Mode);
                        blc_smp_setPairingMethods_master(LE_Secure_Connection);
                        blc_smp_setIoCapability_master(IO_CAPABILITY_NO_INPUT_NO_OUTPUT);
                        blc_smp_enableAuthMITM_master(0); // 禁用MITM

//            uart_init(115200);

                        blc_ll_setAdvParam(
                   ADV_INTERVAL_30MS,  // 广播间隔
                   ADV_INTERVAL_35MS,
                   ADV_TYPE_CONNECTABLE_UNDIRECTED,
                           OWN_ADDRESS_PUBLIC,
                   0,
                   NULL,
                   BLT_ENABLE_ADV_ALL, // 启用所有广播通道
                   ADV_FP_NONE
                           );

            blc_ll_setAdvEnable(BLC_ADV_ENABLE);
            master.state = PAIRING_IN_PROGRESS;
            LedRG_Flag = LedRGF_Flag;
            testLED_tick =  clock_time();

                break;


B80B匹配如下:
const u8        tbl_advData[] = {

        7,  DT_COMPLETE_LOCAL_NAME,                                 'B', 'l', 'r',  '1', '0', '1',
         2,         DT_FLAGS,                                                                 0x05,                                        
         3,  DT_APPEARANCE,                                                 0x80, 0x01,                        
         5,  DT_INCOMPLETE_LIST_16BIT_SERVICE_UUID,        0x12, 0x18, 0x0F, 0x18,       
};

const u8        tbl_scanRsp [] = {
        7,  DT_COMPLETE_LOCAL_NAME,                                 'B', 'l', 'r',  '1', '0', '1'
};


        switch (slavePairing.state)
        {
                case PAIRING_TRIGGERED:
                        Led_Mode = LedRedGreenFlash_Mode;
                        printf("bluetooth_paring --> Led_Mode = LedRedGreenFlash_Mode  \r\n");

                    // 初始化BLE栈
                        u8 mac_public[6] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06};; //自定义MAC地址
                        blc_ll_initStandby_module(mac_public);                        // 初始化待机模式        //mandatory
                        blc_ll_initAdvertising_module();     // 初始化广播模块
                        blc_ll_initSlaveRole_module();

                        // 配置安全请求发送参数
                    blc_smp_setSecurityLevel(LE_Security_Mode_1_Level_2);        // 设置安全级别为无认证加密
//                        blc_smp_setSecurityLevel(No_Security);                //No加密模式
                    blc_smp_setPairingMethods(LE_Secure_Connection);                // 使用传统配对方式

                        // 配置GAP参数/广播参数
                    // 调用配置函数启用默认配置
                    app_switch_to_undirected_adv(0, NULL, 0);

                        blc_gap_setEventMask(GAP_EVT_MASK_DEFAULT |
                                            (1<<GAP_EVT_SMP_CONN_ENCRYPTION_DONE)); // 启用加密完成事件

                    blc_smp_setBondingMode(Bondable_Mode);                 // 启用绑定存储(重连自动加密)

                    blc_smp_setIoCapability(IO_CAPABILITY_NO_INPUT_NO_OUTPUT); //无交互

                    bls_ll_setAdvEnable(1);
                        slavePairing.state = PAIRING_IN_PROGRESS;
                break;



现在没有成功连接,请问1.配置是否正确?2.我们的SDK如何获取对方的MAC地址并加入白名单?3.如何确认连接成功?4.如何发送数据?5.后续如何每次开机自动扫描并与白名单确认合适后自动连接?
谢谢!



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 |沪公网安备31011502403548号 )

GMT+8, 2025-12-9 19:46 , Processed in 0.106340 second(s), 21 queries .

Powered by Discuz! 隐私政策

泰凌微电子版权所有 © 。保留所有权利。 2024

快速回复 返回顶部 返回列表