项目设计中,通常服务UUID为128bit,特征的UUID只修改服务UUID中的两个字节,其余字节保持不变;而一些特殊项目中会要求特征的UUID是与服务UUID完全不同的128bit的值,本片文章便是说明在Nordic中,是如何修改来达到这个目的的。
(注:本文讲解使用协议栈为:SDK17.0.2;主控为:NRF52840
使用其他版本的协议栈与主控时,修改方式略有不同,思路是一样的)
步骤一:
在添加新的特征值之前重新添加一次UUID,如下图所示
其中BLE_UUID_RX_CHAR_BASE是重新定义的特征的UUID(128bit),如:
#define BLE_UUID_RX_CHAR_BASE {0xE2, 0xFF, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x00, 0x00, 0x01, 0x00}
步骤二:
修改Option for target中的Target选项卡下的IRAM1的起始位置与大小,原则就是修改了一个特征的UUID,则相对的起始位置+0x10,大小-0x10,如下图:
步骤三:
修改宏定义NRF_SDH_BLE_VS_UUID_COUNT,原则就是修改了一个特征的UUID,宏定义在原有基础上+1,如下图: