请选择 进入手机版 | 继续访问电脑版

930电子网

 找回密码
 立即注册
艾克姆科技推出最新产品STM32F103ZET6开发板
搜索
查看: 277|回复: 1

艾克姆科技 nRF52832开发板板 实验16-1:无线(BLE)修改设备名称 (无法修改设备名)

[复制链接]

1

主题

2

帖子

25

积分

新手上路

Rank: 1

积分
25
发表于 2020-9-1 19:12:44 | 显示全部楼层 |阅读模式
有哪位大神试过实验16-1:无线(BLE)修改设备名称.zip这套源码?    我在验证的时候发现在手机端操作修改设备名称时没效果。
    在BLE事件处理函数中加了log发现是evt_id与uuid 不匹配. (实际evt_id:BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST   实际的uuid:0x03(不知道0x03是个啥玩意儿))
    代码中的条件是如下,
void ble_gatt_params_on_ble_evt(ble_evt_t const * p_ble_evt)
{
          //定义一个GATTS写事件结构体并指向BLE事件结构体中的写事件,方便取值
          ble_gatts_evt_write_t const * p_evt_write = &p_ble_evt->evt.gatts_evt.params.write;
    //如果事件类型是BLE_GATTS_EVT_WRITE并且UIID是GAP服务的设备名称特征的UUID,即为写GAP设备名称特征
        NRF_LOG_INFO("uuid:[0x%x  0x%x] evtid:[0x%x   0x%x]",p_evt_write->uuid.uuid,BLE_UUID_GAP_CHARACTERISTIC_DEVICE_NAME,p_ble_evt->header.evt_id,BLE_GATTS_EVT_WRITE);
          if((p_evt_write->uuid.uuid == BLE_UUID_GAP_CHARACTERISTIC_DEVICE_NAME) &&
                     (p_ble_evt->header.evt_id == BLE_GATTS_EVT_WRITE))
          {
                 NRF_LOG_INFO("write name.");
                   //拷贝设备名称
                   memcpy(&device_name_info.name.name8[8], p_evt_write->data, p_evt_write->len);
                         //第一个字设置为名称类型
                   device_name_info.name.name32[0] = FLASH_TYPE_NAME;
                         //第二个字设置为名称的长度
                   device_name_info.name.name32[1] = p_evt_write->len;
                   //更新广播内容
                   adv_updata();
                   //设备名称保存标志置位,主循环中根据该标志判断是否需要将设备名称存储到Flash
                device_name_info.save_name_flag = true;
          }       
}

请问有谁知道为啥会是一个BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST 事件而不是BLE_GATTS_EVT_WRITE吗?
回复

使用道具 举报

1

主题

2

帖子

25

积分

新手上路

Rank: 1

积分
25
 楼主| 发表于 2020-9-2 19:15:44 | 显示全部楼层
活见鬼了,也不知道是协议栈的问题还是手机的的问题,重启了一下手机以及重新烧写了一次协议栈之后就好了,啥也没干.
回复 支持 反对

使用道具 举报

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

本版积分规则

Copyright © 2001-2016 930ebbs Powered by 930电子网( 皖ICP备16000695号-2 )QQ
手机版官方淘宝店930电子网  
快速回复 返回顶部 返回列表