• TLSR8258方案开发之BLE协议接口代码解析


    一 前言

      这里的代码是在原厂基础上修改了不少。虽然代码复杂了不少,但是逻辑也清晰了不少。

    二  广播协议

      想要熟悉并修改ble的广播协议和内容,请查阅结构体:

    static const attribute_t my_Attributes[] 
     比如,假如要上报电压值,可以在里面添加
            {0,ATT_PERMISSIONS_READ,2,sizeof(my_batCharVal),(u8*)(&my_characterUUID), (u8*)(my_batCharVal), 0},                //prop

       该广播信息的填写如下所示:

     
    //// Battery attribute values
    static const u8 my_batCharVal[5] = {
        CHAR_PROP_READ | CHAR_PROP_NOTIFY,
        U16_LO(BATT_LEVEL_INPUT_DP_H), U16_HI(BATT_LEVEL_INPUT_DP_H),
        U16_LO(CHARACTERISTIC_UUID_BATTERY_LEVEL), U16_HI(CHARACTERISTIC_UUID_BATTERY_LEVEL)
    };
    三 连接和断开
      连接成功的接口如下所示:
        case APP_BLE_EVENT_CONNECTED:
            b_ble_connected = ON;
            LOG_INFO("Connected!!! ble_state:%d ",b_ble_connected);
            LOG_INFO("e: %d p:%d n: %d", param->e, param->p, param->n);

      断开的接口如下所示:

        case APP_BLE_EVENT_DISCONNECTED:
            b_ble_connected = OFF;
            b_rx_notify_enable = OFF;
    
            LOG_INFO("DisConnected Reason: 0x%02x ble_state:%d ", param->p,b_ble_connected);
            att_mtu_size = DEFAULT_ATT_MTU_SIZE;
    四 数据收发
         数据接收的接口函数:
    static int parse_xp_message(XpMessage* message, uint8_t* data, uint16_t len)
    {
        uint8_t* p = NULL;
        p = data;
        
        set_xp_header(message, data, &p);
        LOG_DEBUG("%s Info: ble received data:", __func__);
      数据发送的接口函数:
        app_ble_send_data_by_notification(buff, length);

    五 软硬件链接:

    泰凌微TLSR8258 BLE5.0物联网IOT评估开发板产品级源码开放-淘宝网 (taobao.com)

  • 相关阅读:
    如何学习区块链
    用Python从零开始创建区块链
    区块链入门
    什么是区块链
    localStorage使用总结
    整理vue学习笔记
    SCSS 教程
    vue — 创建vue项目
    软件开发的常见文档
    史上最全的CSS hack方式一览(转)
  • 原文地址:https://www.cnblogs.com/dylancao/p/16009941.html
Copyright © 2020-2023  润新知