Part Number:CC2642R
为了给我们的产品提供一个干净的项目基础。我在 SDK 5.10.00.48 上导入 project_zero,并清空了 OAD,以及 led, button, data 三个蓝牙服务。
程序编译连接没有问题。不过,有个奇怪的情况。在 CCS 下载程序调试,一切都正常。不过只能成功连接一次!
调试状态下,终端提示下面的信息时,蓝牙就中断了。以后再也不能搜索到这个蓝牙设备。
#000009 [ 37.733 ] INFO: (project_zero.c:1737) Updated params for 41:8F:71:66:4D:69, interval: 7.50 ms, latency: 0, timeout: 5000 ms
#000010 [ 37.973 ] INFO: (project_zero.c:1737) Updated params for 41:8F:71:66:4D:69, interval: 45.0 ms, latency: 0, timeout: 5000 ms
该处的函数代码是:
/*********************************************************************
* @fn ProjectZero_handleUpdateLinkEvent
*
* @brief Receive and parse a parameter update that has occurred.
*
* @param pEvt – pointer to stack event message
*/
static void ProjectZero_handleUpdateLinkEvent(gapLinkUpdateEvent_t *pEvt)
{
// Get the address from the connection handle
linkDBInfo_t linkInfo;
linkDB_GetInfo(pEvt->connectionHandle, &linkInfo);
static uint8_t addrStr[3 * B_ADDR_LEN + 1];
util_arrtohex(linkInfo.addr, B_ADDR_LEN, addrStr, sizeof addrStr,
UTIL_ARRTOHEX_REVERSE);
if(pEvt->status == SUCCESS)
{
uint8_t ConnIntervalFracture = 25*(pEvt->connInterval % 4);
// Display the address of the connection update
Log_info5(
"Updated params for %s, interval: %d.%d ms, latency: %d, timeout: %d ms",
(uintptr_t)addrStr,
(uintptr_t)(pEvt->connInterval*CONN_INTERVAL_MS_CONVERSION),
ConnIntervalFracture,
pEvt->connLatency,
pEvt->connTimeout*CONN_TIMEOUT_MS_CONVERSION);
}
else
{
// Display the address of the connection update failure
Log_info2("Update Failed 0x%02x: %s", pEvt->opcode, (uintptr_t)addrStr);
}
// Check if there are any queued parameter updates
pzConnHandleEntry_t *connHandleEntry = (pzConnHandleEntry_t *)List_get(
¶mUpdateList);
if(connHandleEntry != NULL)
{
// Attempt to send queued update now
ProjectZero_sendParamUpdate(*(connHandleEntry->connHandle));
// Free list element
ICall_free(connHandleEntry->connHandle);
ICall_free(connHandleEntry);
}
}
Kevin Qiu1:
现在是周末,将在工作日回复
,
Robin Luo:
呵呵,抱歉妨碍您的休息。不过,这个问题实在是困扰我们太长的时间。还是那句话,为什么就不能提供一个干净的项目给客户自己配置呢?在这个事情上面,我们耗费的时间,可能比更换其他厂家的器件还要长。
,
Kevin Qiu1:
project_zero例程不包括CCFG在启动时配置设备的部分,需要首先将 BIM文件下载到设备中,具体查看readme文件中的说明
如此前所说,没有你所需要的那样的例程,都需要修改
,
Robin Luo:
我们的产品,都会首先烧写同一个 SDK 上的同类型编译器的项目的 BIM 的。但是,对解决问题并没有什么帮助。
,
Kevin Qiu1:
那可能是修改程序引起的,正常来说project如果只能运行一次,基本上都是没有烧录bim文件
如另一个帖子所说,如果不使用oad,simple_peripheral例程会是更好的选择