BlueNRG by STM支持的最大服务和/或特征数取决于使用的固件版本和蓝牙标准。在最新的BLE_Stack_Library_V2.1.0版本中,BlueNRG最多支持15个服务和82个特征。
以下是使用BLE_Stack_Library_V2.1.0版本在BlueNRG中创建服务和特征的示例代码:
/* 声明服务和特征的UUID */ uint8_t service_uuid[16] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00}; uint8_t characteristic_uuid[16] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00};
/* 创建服务 */ aci_gatt_add_serv(UUID_TYPE_128, service_uuid, PRIMARY_SERVICE, 7, &service_handle);
/* 添加特征到服务中 */ aci_gatt_add_char(service_handle, UUID_TYPE_128, characteristic_uuid, 4, CHAR_PROP_READ|CHAR_PROP_NOTIFY, ATTR_PERMISSION_NONE, 0, 16, 1, &char_handle);
注意:在创建更多的服务和特征时,需要确保使用的总特征数量不超过82。可以将多个特征添加到同一个服务中,以最大限度地减少使用的特征数。