读取设备的 MAC 地址:
- GAPRole_GetParameter(GAPROLE_BD_ADDR, ownAddress);
- #define GAPROLE_BD_ADDR 0x304 //!< Device's Address. Read Only. Size is uint8[B_ADDR_LEN]. This item is read from the controller.
因为微信协议规定 advertData 中要有设备的 MAC 地址,所以要将读到的 MAC 地址放到 advertData 中:
- advertData[ADVERT_MAC_ADDR+0] = ownAddress[5];
- advertData[ADVERT_MAC_ADDR+1] = ownAddress[4];
- advertData[ADVERT_MAC_ADDR+2] = ownAddress[3];
- advertData[ADVERT_MAC_ADDR+3] = ownAddress[2];
- advertData[ADVERT_MAC_ADDR+4] = ownAddress[1];
- advertData[ADVERT_MAC_ADDR+5] = ownAddress[0];
- ownAddress[5] = advertData[ADVERT_MAC_ADDR+5];
- ownAddress[4] = advertData[ADVERT_MAC_ADDR+4];
- ownAddress[3] = advertData[ADVERT_MAC_ADDR+3];
- ownAddress[2] = advertData[ADVERT_MAC_ADDR+2];
- ownAddress[1] = advertData[ADVERT_MAC_ADDR+1];
- ownAddress[0] = advertData[ADVERT_MAC_ADDR+0];
- GAPRole_SetParameter( GAPROLE_ADVERT_DATA, sizeof( advertData ), advertData );
微信客户端是通过扫描 BLE 设备的 MAC 地址并连接