微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2540 CC2541 的System ID

CC2540 CC2541 的System ID

时间:10-02 整理:3721RD 点击:

你好:

1. 請問 CC2540  CC2541 的System ID 可以更改嗎?

2. 若可以更改,請問要如何更改?

3. 若不能更改,請問他是唯一碼嗎?

謝謝你

kimi,

1. 你说的是BDADDR 吗?可以更改。

2. 需要在Debugger 模式下更改,通过smart programmer。

3. 能更改。但是实际上每颗芯片的BDADDR 都是不一样的,每颗芯片都是独立,唯一的。这个ID 是TI 向IEEE申请的,如果你自己需要,也得向IEEE申请才合法。

所以,不需要更改。

你好:

如附件紅框的System ID,請問這可以改嗎?

另外您指的"BDADDR",是mac address? 這個直可以用UUID讀出嗎?

謝謝你

Kimi,

没错,BDADDR 就是 MAC address。mac address 在广播的时候就应该能读出了。但是iOS不会把搜索到的BDADDR 直接送到应用层,会隐藏起来用UUID的方式送。所以,你可以先通过HCI_ReadBDADDRCmd() 或者 类似 GAPRole_GetParameter(GAPROLE_BD_ADDR, ownAddress);读出来,然后以characteristic value的方式让iOS 去读。

system ID可以改,你在另外的帖子也问过。但是这个是跟BDADDR 联系在一起的,你另外的那个帖子里面也描述了。

你好

所以BDADDR 等於 system ID ?

可是我Android讀到的 MAC address 為78:C5:E5:70:7D:BB

system ID 卻是BB:7D:00:00:E5:C5:78

請問他們雖然很像,卻不完全相同,有什麼公式轉換嗎?

不好意思,剛接觸這塊領域不久,謝謝你的幫忙~

Kimi,

从下面代码可以看出BDADDR 和 system ID的关系:

case GAPROLE_STARTED:
{
uint8 ownAddress[B_ADDR_LEN];
uint8 systemId[DEVINFO_SYSTEM_ID_LEN];

GAPRole_GetParameter(GAPROLE_BD_ADDR, ownAddress);

// use 6 bytes of device address for 8 bytes of system ID value
systemId[0] = ownAddress[0];
systemId[1] = ownAddress[1];
systemId[2] = ownAddress[2];

// set middle bytes to zero
systemId[4] = 0x00;
systemId[3] = 0x00;

// shift three bytes up
systemId[7] = ownAddress[5];
systemId[6] = ownAddress[4];
systemId[5] = ownAddress[3];

DevInfo_SetParameter(DEVINFO_SYSTEM_ID, DEVINFO_SYSTEM_ID_LEN, systemId);

#if (defined HAL_LCD) && (HAL_LCD == TRUE)
// Display device address
HalLcdWriteString( bdAddr2Str( ownAddress ), HAL_LCD_LINE_2 );
HalLcdWriteString( "Initialized", HAL_LCD_LINE_3 );
#endif // (defined HAL_LCD) && (HAL_LCD == TRUE)
}
break;

请问:

为什么要加长到8个字节,官方定义的吗?

不错,学习!

请问:

system id &  module number string & serial number string …………

的怎么在central中读出来

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top