CC2540 CC2541 的System ID
你好:
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中读出来