BLE不绑定【至急】



  • @zhaoxiuchengBLE不绑定【至急】 中说:

    GAP_SEC_EVT_BOND_SUCCESS

    GAP_SEC_EVT_BOND_SUCCESS 就是表示配对成功的意思, 是在协议栈收到GAPC_PAIRING_SUCCEED, 通知应用层配对成功
    case (GAPC_PAIRING_SUCCEED):
    {
    gap_event_t evt;
    evt.type = GAP_SEC_EVT_BOND_SUCCESS;
    evt.param.bond_success_conidx = KE_IDX_GET(src_id);
    if(app_env.gap_evt_func)
    app_env.gap_evt_func( &evt );
    ...



  • 我这边目前出现bond success之后流程就走不下去,但是如果没有bond success就可以走,概率性会出现没有bond success返回的情况

    这种情况下一般是什么原因呢

    我看文档:.bond_auth = false,这个只是代码是否发送Key,不涉及是否进行绑定操作呢
    @刘流鎏



  • @zhaoxiuchengBLE不绑定【至急】 中说:

    bon

    就是这样配的. 走不下去的原因是什么?log 报什么异常吗?



  • @刘流鎏 目前我们测试的状况:
    没有收到GAP_SEC_EVT_BOND_SUCCESS:
    可以接收到GATT write的消息

    接收到GAP_SEC_EVT_BOND_SUCCESS:
    手机侧发送GATT write消息就会收不到



  • @zhaoxiucheng
    拿nrf connect App 测一下. 一般情况配对不影响gatt write.



  • 接收到Bond成功,没有反映:
    freqchipfreqchipfreqchipfreqchipBLE Peripheral
    Local BDADDR: 0x415D393734D5
    GAP_EVT_NO: 0x00
    All service added
    Start advertising...

    GATT_EVT_NO: 0x07
    GATT_EVT: GATTC_MSG_LINK_CREATE
    link_created

    addr_type:1
    GAP_EVT_NO: 0x01
    slave[0],connect. link_num:1
    GAP_EVT_NO: 0x09
    adv_end,status:0x00
    b_r
    GAP_EVT_NO: 0x17
    GAP_SEC_EVT_BOND_START
    [SEC]:peer,auth_req:d
    GAP_EVT_NO: 0x19
    GAP_SEC_EVT_BOND_SUCCESS

    未接收到Bond Success:
    freqchipfreqchipfreqchipfreqchipBLE Peripheral
    Local BDADDR: 0x415D393734D5
    GAP_EVT_NO: 0x00
    All service added
    Start advertising...

    GATT_EVT_NO: 0x07
    GATT_EVT: GATTC_MSG_LINK_CREATE
    link_created

    addr_type:1
    GAP_EVT_NO: 0x01
    slave[0],connect. link_num:1
    GAP_EVT_NO: 0x09
    adv_end,status:0x00
    GAP_EVT_NO: 0x06
    Link[0]param update,interval:9,latency:0,timeout:500
    GAP_EVT_NO: 0x06
    Link[0]param update,interval:6,latency:0,timeout:500

    GATT_EVT_NO: 0x01
    GATT_EVT: GATTC_MSG_WRITE_REQ
    GATT_IDX_READ_CFG:0x02,0x00,

    GAP_EVT_NO: 0x06
    Link[0]param update,interval:9,latency:0,timeout:500
    GAP_EVT_NO: 0x10
    mtu update,conidx=0,mtu=247

    GATT_EVT_NO: 0x01
    GATT_EVT: GATTC_MSG_WRITE_REQ
    write_recv:
    0x00,0xD8,0x01,0x00,0x00,0x00,0x00,0x11,0x09,0x6E,0x65,0x74,0x43,0x66,0x67,0x56,0x65,0x72,0x00,0x00,
    GATT_EVT: gatt_write_req

    GATT_EVT_NO: 0x06

    GATT_EVT_NO: 0x08
    GATT_EVT: GATTC_MSG_LINK_LOST
    link_lost

    GAP_EVT_NO: 0x03
    Link[0] disconnect,reason:0x13
    Start advertising...



  • @刘流鎏
    学习一下这个资料docs\Application Notes\Fr801xH 如何构建多从机工程.pdf, 芯片不熟悉引起的若干问题



  • @刘流鎏
    目前通过nRF connect测试结果如下:

    1. 先进行Bond,然后在Bond页面点击连接无法连接成功
    2. 进入nRF connect直接点击连接,可以正常连接并且收发数据
    3. 进入nRF connect点击连接(without bond),进行连接,连接后点击bond进行绑定,此时进行收发数据,设备端没有任何返回,无反应状态,显示【connect/bonded(左上角)】的位置一直在转圈

    关于3的log为:
    addr_type:1
    GAP_EVT_NO: 0x01
    slave[0],connect. link_num:1
    GAP_EVT_NO: 0x09
    adv_end,status:0x00
    GAP_EVT_NO: 0x06
    Link[0]param update,interval:9,latency:0,timeout:500
    GAP_EVT_NO: 0x06
    Link[0]param update,interval:6,latency:0,timeout:2000
    GAP_EVT_NO: 0x06
    Link[0]param update,interval:9,latency:0,timeout:500
    b_r
    GAP_EVT_NO: 0x17
    GAP_SEC_EVT_BOND_START
    [SEC]:peer,auth_req:d
    GAP_EVT_NO: 0x06
    Link[0]param update,interval:6,latency:0,timeout:2000
    GAP_EVT_NO: 0x19
    GAP_SEC_EVT_BOND_SUCCESS



  • 要bond 完成再收发数据



  • @刘流鎏

    GAP_SEC_EVT_BOND_START
    [SEC]:peer,auth_req:d
    GAP_EVT_NO: 0x06
    Link[0]param update,interval:6,latency:0,timeout:2000
    GAP_EVT_NO: 0x19
    GAP_SEC_EVT_BOND_SUCCESS
    这个log走完,并且nRF connect上面显示了Bonded之后我才发送的数据,发送完数据就会出现
    【此时进行收发数据,设备端没有任何返回,无反应状态,显示【connect/bonded(左上角)】的位置一直在转圈】
    发送数据之前,左上角没有转圈,发送之后才开始转圈的



  • 此回复已被删除!