DA14580修改广播名称

使用例子:DA1458x_SDK\5.0.4\projects\target_apps\ble_examples\ble_app_profile\Keil_5

下进去后蓝牙名称如下。
DA14580修改广播名称_第1张图片
DA14580修改广播名称_第2张图片
打开工程里面的sdk_arch文件下的nvds.c
在如图地方添加:
DA14580修改广播名称_第3张图片
这时就可以看到蓝牙名称修改了。
DA14580修改广播名称_第4张图片
但是读取0x1800服务里面的名称还是之前的名称。
DA14580修改广播名称_第5张图片
需要在添加服务前修改设备名称
DA14580修改广播名称_第6张图片

app.c里面添加

void app_easy_gap_dev_nameure(void)
{
    struct gapm_set_dev_name_cmd* cmd = app_easy_gap_dev_name_create_msg();
    app_gapm_nameure_msg_send(cmd);
    set_dev_name_cmd = NULL;
}

然后到app_easy_gap.h里添加声明。

同时app.c里面添加

static struct gapm_set_dev_name_cmd *set_dev_name_cmd                         	   __attribute__((section("retention_mem_area0"),zero_init)); // @RETENTION MEMORY

static struct gapm_set_dev_name_cmd* app_easy_gap_dev_name_create_msg(void)
{
    // Allocate a message for GAP
    if (set_dev_name_cmd == NULL)
    {
        struct gapm_set_dev_name_cmd* cmd;
        cmd = app_gapm_nameure_msg_create();
        set_dev_name_cmd = cmd;
		
		cmd->operation = GAPM_SET_DEV_NAME;
		memcpy(cmd->name,test_name,sizeof(test_name));
		cmd->length = sizeof(test_name);
    }
    return set_dev_name_cmd;
}

在app_mid.h里面添加

__INLINE  struct gapm_set_dev_name_cmd* app_gapm_nameure_msg_create(void)
{
 struct gapm_set_dev_name_cmd* cmd=KE_MSG_ALLOC(GAPM_SET_DEV_NAME_CMD,
                                TASK_GAPM, TASK_APP,
                                gapm_set_dev_name_cmd);
  cmd->operation=GAPM_SET_DEV_NAME;
 return cmd;
}

__INLINE  void app_gapm_nameure_msg_send(struct gapm_set_dev_name_cmd* cmd)
{
  ke_msg_send(cmd);
}

至此修改完毕,debug运行,可以看到名称都修改了。

DA14580修改广播名称_第7张图片
DA14580修改广播名称_第8张图片

你可能感兴趣的:(蓝牙)