使用例子:DA1458x_SDK\5.0.4\projects\target_apps\ble_examples\ble_app_profile\Keil_5
下进去后蓝牙名称如下。
打开工程里面的sdk_arch文件下的nvds.c
在如图地方添加:
这时就可以看到蓝牙名称修改了。
但是读取0x1800服务里面的名称还是之前的名称。
需要在添加服务前修改设备名称
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运行,可以看到名称都修改了。