工具与软件:
您好、TI
我们已将 SE 安全芯片集成到外设中。 在启动时初始化蓝牙广播后、我们需要从 SE 芯片读取本地名称、并替换原始默认蓝牙本地名称。 如何修改此参数? 直接修改 attDeviceName 中引用的变量 ti_ble_config.h 似乎会导致系统错误。
此致!
普雷斯顿
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
您好、TI
我们已将 SE 安全芯片集成到外设中。 在启动时初始化蓝牙广播后、我们需要从 SE 芯片读取本地名称、并替换原始默认蓝牙本地名称。 如何修改此参数? 直接修改 attDeviceName 中引用的变量 ti_ble_config.h 似乎会导致系统错误。
此致!
普雷斯顿
您好!
我认为您要寻找的是 GGS_SetParameter。 不过、我们的文档似乎没有很好地涵盖此功能。 您可以按如下方式使用该函数:
status = GGS_SetParameter(GGS_DEVICE_NAME_ATT, GAP_DEVICE_NAME_LEN, (void *)pAttDeviceName);
if (status != SUCCESS)
{
return status;
}
此函数在堆栈初始化过程中调用(参见 common/iCallBLE/ble_stack_api.c :: Stackinit_Gatt 5213()),因此我不确定堆栈初始化后是否可以更改。
解决此问题的方法是更改 BLEAppUtil_stackInit 函数、以便在堆栈初始化之前填充设备名称:
/** File: bleapputil_init.c (common/BLEAppUtil/bleapputil_init.c)
Function: BLEAppUtil_stackInit **/
// Init GATT
status = bleStack_initGatt(BLEAppUtilLocal_GeneralParams->profileRole,
BLEAppUtilSelfEntity,
/** NOTE: Change this param to the device name desired **/
BLEAppUtilLocal_GeneralParams->deviceNameAtt);
if(status != SUCCESS)
{
// TODO: Call Error Handler
}
在 common/BLEAppUtil/bleapputil_task.c 中调用 BLEAppUtil_stackInit :: BLE687. Util_Task
我对您尝试执行的操作建议如下:
1.创建可以保存所需名称的全局变量。
2.修改 BLEAppUtil_stackInit :: bleStack_initGatt 以使用此全局变量。
3.在调用 BLEAppUtil_stackInit 之前 、请将全局变量设置为所需的名称:

这应该使用您设置的名称。
此致!
Nima Behmanesh
您好、Nima
很抱歉、我对您的回应出现延误。
我尝试更 BLEAppUtilLocal_GeneralParams->deviceNameAtt 改为自定义名称、如图所示、其中自定义名称是一个六字节数组。 但是、初始化后、蓝牙广播名称 仍会显示在 syscfg.(通过移动蓝牙搜索发现的名称)中配置的名称


这似乎没有生效。 操作顺序是否有问题? 我在此处初始化的名称是否会被 syscfg 中的名称覆盖?
此致、
普雷斯顿
您好、Nima
bStatus_t Peripheral_start()
{
bStatus_t status = SUCCESS;
status = BLEAppUtil_registerEventHandler(&peripheralConnHandler);
if(status != SUCCESS)
{
// Return status value
return(status);
}
status = BLEAppUtil_registerEventHandler(&peripheralAdvHandler);
if(status != SUCCESS)
{
return(status);
}
memcpy(&scanResData1[2], test_name, sizeof(test_name));//Added by Preston
status = BLEAppUtil_initAdvSet(&peripheralAdvHandle_1, &advSetInitParamsSet_1);
if(status != SUCCESS)
{
// Return status value
return(status);
}
status = BLEAppUtil_advStart(peripheralAdvHandle_1, &advSetStartParamsSet_1);
if(status != SUCCESS)
{
// Return status value
return(status);
}
// Return status value
return(status);
}
在广播初始化期间、我修改了 scanResDATA1中的本地名称并 开始运行。