BLE中常用的UUID蓝牙低功耗BLE开发,无论是MCU端还是Android等APP端,都会涉及到一堆的UUID,对应着BLE协议栈GATT的Service、Characteristic、Descriptor。
开发者可以自定义这些128位的UUID,Bluetooth SIG也已定义了许多标准的。例如:Heart Rate Profile,就定义了UUID和数据格式,只要能兼容,就可以让你的BLE设备能被各类符合标准的APP所获取心率数据。
下面列出了收集整理的常用UUID(以Android Java格式),以便查找使用:
private static HashMap<String, String> attributes = new HashMap();
static {
// Sample Services.
attributes.put("0000180d-0000-1000-8000-00805f9b34fb", "Heart Rate Service");
attributes.put("0000180a-0000-1000-8000-00805f9b34fb", "Device Information Service");
// Sample Characteristics.
attributes.put("00002a37-0000-1000-8000-00805f9b34fb", "Heart Rate Measurement");
attributes.put("00002a29-0000-1000-8000-00805f9b34fb", "Manufacturer Name String");
// GATT Services
attributes.put("00001800-0000-1000-8000-00805f9b34fb", "Generic Access");
attributes.put("00001801-0000-1000-8000-00805f9b34fb", "Generic Attribute");
// GATT Declarations
attributes.put("00002800-0000-1000-8000-00805f9b34fb", "Primary Service");
attributes.put("00002801-0000-1000-8000-00805f9b34fb", "Secondary Service");
attributes.put("00002802-0000-1000-8000-00805f9b34fb", "Include");
attributes.put("00002803-0000-1000-8000-00805f9b34fb", "Characteristic");
// GATT Descriptors
attributes.put("00002900-0000-1000-8000-00805f9b34fb", "Characteristic Extended Properties");
attributes.put("00002901-0000-1000-8000-00805f9b34fb", "Characteristic User Description");
attributes.put("00002902-0000-1000-8000-00805f9b34fb", "Client Characteristic Configuration");
attributes.put("00002903-0000-1000-8000-00805f9b34fb", "Server Characteristic Configuration");
attributes.put("00002904-0000-1000-8000-00805f9b34fb", "Characteristic Presentation Format");
attributes.put("00002905-0000-1000-8000-00805f9b34fb", "Characteristic Aggregate Format");
attributes.put("00002906-0000-1000-8000-00805f9b34fb", "Valid Range");
attributes.put("00002907-0000-1000-8000-00805f9b34fb", "External Report Reference Descriptor");
attributes.put("00002908-0000-1000-8000-00805f9b34fb", "Report Reference Descriptor");
// GATT Characteristics
attributes.put("00002a00-0000-1000-8000-00805f9b34fb", "Device Name");
attributes.put("00002a01-0000-1000-8000-00805f9b34fb", "Appearance");
attributes.put("00002a02-0000-1000-8000-00805f9b34fb", "Peripheral Privacy Flag");
attributes.put("00002a03-0000-1000-8000-00805f9b34fb", "Reconnection Address");
attributes.put("00002a04-0000-1000-8000-00805f9b34fb", "PPCP");
attributes.put("00002a05-0000-1000-8000-00805f9b34fb", "Service Changed");
// GATT Service UUIDs
attributes.put("00001802-0000-1000-8000-00805f9b34fb", "Immediate Alert");
attributes.put("00001803-0000-1000-8000-00805f9b34fb", "Link Loss");
attributes.put("00001804-0000-1000-8000-00805f9b34fb", "Tx Power");
attributes.put("00001805-0000-1000-8000-00805f9b34fb", "Current Time Service");
attributes.put("00001806-0000-1000-8000-00805f9b34fb", "Reference Time Update Service");
attributes.put("00001807-0000-1000-8000-00805f9b34fb", "Next DST Change Service");
attributes.put("00001808-0000-1000-8000-00805f9b34fb", "Glucose");
attributes.put("00001809-0000-1000-8000-00805f9b34fb", "Health Thermometer");
attributes.put("0000180a-0000-1000-8000-00805f9b34fb", "Device Information");
attributes.put("0000180b-0000-1000-8000-00805f9b34fb", "Network Availability");
attributes.put("0000180d-0000-1000-8000-00805f9b34fb", "Heart Rate");
attributes.put("0000180e-0000-1000-8000-00805f9b34fb", "Phone Alert Status Service");
attributes.put("0000180f-0000-1000-8000-00805f9b34fb", "Battery Service");
attributes.put("00001810-0000-1000-8000-00805f9b34fb", "Blood Pressure");
attributes.put("00001811-0000-1000-8000-00805f9b34fb", "Alert Notification Service");
attributes.put("00001812-0000-1000-8000-00805f9b34fb", "Human Interface Device");
attributes.put("00001813-0000-1000-8000-00805f9b34fb", "Scan Parameters");
attributes.put("00001814-0000-1000-8000-00805f9b34fb", "Running Speed and Cadence");
attributes.put("00001816-0000-1000-8000-00805f9b34fb", "Cycling Speed and Cadence");
attributes.put("00001818-0000-1000-8000-00805f9b34fb", "Cycling Power");
attributes.put("00001819-0000-1000-8000-00805f9b34fb", "Location and Navigation");
// GATT Characteristic UUIDs
attributes.put("00002a06-0000-1000-8000-00805f9b34fb", "Alert Level");
attributes.put("00002a07-0000-1000-8000-00805f9b34fb", "Tx Power Level");
attributes.put("00002a08-0000-1000-8000-00805f9b34fb", "Date Time");
attributes.put("00002a09-0000-1000-8000-00805f9b34fb", "Day of Week");
attributes.put("00002a0a-0000-1000-8000-00805f9b34fb", "Day Date Time");
attributes.put("00002a0c-0000-1000-8000-00805f9b34fb", "Exact Time 256");
attributes.put("00002a0d-0000-1000-8000-00805f9b34fb", "DST Offset");
attributes.put("00002a0e-0000-1000-8000-00805f9b34fb", "Time Zone");
attributes.put("00002a0f-0000-1000-8000-00805f9b34fb", "Local Time Information");
attributes.put("00002a11-0000-1000-8000-00805f9b34fb", "Time with DST");
attributes.put("00002a12-0000-1000-8000-00805f9b34fb", "Time Accuracy");
attributes.put("00002a13-0000-1000-8000-00805f9b34fb", "Time Source");
attributes.put("00002a14-0000-1000-8000-00805f9b34fb", "Reference Time Information");
attributes.put("00002a16-0000-1000-8000-00805f9b34fb", "Time Update Control Point");
attributes.put("00002a17-0000-1000-8000-00805f9b34fb", "Time Update State");
attributes.put("00002a18-0000-1000-8000-00805f9b34fb", "Glucose Measurement");
attributes.put("00002a19-0000-1000-8000-00805f9b34fb", "Battery Level");
attributes.put("00002a1c-0000-1000-8000-00805f9b34fb", "Temperature Measurement");
attributes.put("00002a1d-0000-1000-8000-00805f9b34fb", "Temperature Type");
attributes.put("00002a1e-0000-1000-8000-00805f9b34fb", "Intermediate Temperature");
attributes.put("00002a21-0000-1000-8000-00805f9b34fb", "Measurement Interval");
attributes.put("00002a22-0000-1000-8000-00805f9b34fb", "Boot Keyboard Input Report");
attributes.put("00002a23-0000-1000-8000-00805f9b34fb", "System ID");
attributes.put("00002a24-0000-1000-8000-00805f9b34fb", "Model Number String");
attributes.put("00002a25-0000-1000-8000-00805f9b34fb", "Serial Number String");
attributes.put("00002a26-0000-1000-8000-00805f9b34fb", "Firmware Revision String");
attributes.put("00002a27-0000-1000-8000-00805f9b34fb", "Hardware Revision String");
attributes.put("00002a28-0000-1000-8000-00805f9b34fb", "Software Revision String");
attributes.put("00002a29-0000-1000-8000-00805f9b34fb", "Manufacturer Name String");
attributes.put("00002a2a-0000-1000-8000-00805f9b34fb", "IEEE 11073-20601 Regulatory Certification Data List");
attributes.put("00002a2b-0000-1000-8000-00805f9b34fb", "Current Time");
attributes.put("00002a31-0000-1000-8000-00805f9b34fb", "Scan Refresh");
attributes.put("00002a32-0000-1000-8000-00805f9b34fb", "Boot Keyboard Output Report");
attributes.put("00002a33-0000-1000-8000-00805f9b34fb", "Boot Mouse Input Report");
attributes.put("00002a34-0000-1000-8000-00805f9b34fb", "Glucose Measurement Context");
attributes.put("00002a35-0000-1000-8000-00805f9b34fb", "Blood Pressure Measurement");
attributes.put("00002a36-0000-1000-8000-00805f9b34fb", "Intermediate Cuff Pressure");
attributes.put("00002a37-0000-1000-8000-00805f9b34fb", "Heart Rate Measurement");
attributes.put("00002a38-0000-1000-8000-00805f9b34fb", "Body Sensor Location");
attributes.put("00002a39-0000-1000-8000-00805f9b34fb", "Heart Rate Control Point");
attributes.put("00002a3e-0000-1000-8000-00805f9b34fb", "Network Availability");
attributes.put("00002a3f-0000-1000-8000-00805f9b34fb", "Alert Status");
attributes.put("00002a40-0000-1000-8000-00805f9b34fb", "Ringer Control Point");
attributes.put("00002a41-0000-1000-8000-00805f9b34fb", "Ringer Setting");
attributes.put("00002a42-0000-1000-8000-00805f9b34fb", "Alert Category ID Bit Mask");
attributes.put("00002a43-0000-1000-8000-00805f9b34fb", "Alert Category ID");
attributes.put("00002a44-0000-1000-8000-00805f9b34fb", "Alert Notification Control Point");
attributes.put("00002a45-0000-1000-8000-00805f9b34fb", "Unread Alert Status");
attributes.put("00002a46-0000-1000-8000-00805f9b34fb", "New Alert");
attributes.put("00002a47-0000-1000-8000-00805f9b34fb", "Supported New Alert Category");
attributes.put("00002a48-0000-1000-8000-00805f9b34fb", "Supported Unread Alert Category");
attributes.put("00002a49-0000-1000-8000-00805f9b34fb", "Blood Pressure Feature");
attributes.put("00002a4a-0000-1000-8000-00805f9b34fb", "HID Information");
attributes.put("00002a4b-0000-1000-8000-00805f9b34fb", "Report Map");
attributes.put("00002a4c-0000-1000-8000-00805f9b34fb", "HID Control Point");
attributes.put("00002a4d-0000-1000-8000-00805f9b34fb", "Report");
attributes.put("00002a4e-0000-1000-8000-00805f9b34fb", "Protocol Mode");
attributes.put("00002a4f-0000-1000-8000-00805f9b34fb", "Scan Interval Window");
attributes.put("00002a50-0000-1000-8000-00805f9b34fb", "PnP ID");
attributes.put("00002a51-0000-1000-8000-00805f9b34fb", "Glucose Feature");
attributes.put("00002a52-0000-1000-8000-00805f9b34fb", "Record Access Control Point");
attributes.put("00002a53-0000-1000-8000-00805f9b34fb", "RSC Measurement");
attributes.put("00002a54-0000-1000-8000-00805f9b34fb", "RSC Feature");
attributes.put("00002a55-0000-1000-8000-00805f9b34fb", "SC Control Point");
attributes.put("00002a5b-0000-1000-8000-00805f9b34fb", "CSC Measurement");
attributes.put("00002a5c-0000-1000-8000-00805f9b34fb", "CSC Feature");
attributes.put("00002a5d-0000-1000-8000-00805f9b34fb", "Sensor Location");
attributes.put("00002a63-0000-1000-8000-00805f9b34fb", "Cycling Power Measurement");
attributes.put("00002a64-0000-1000-8000-00805f9b34fb", "Cycling Power Vector");
attributes.put("00002a65-0000-1000-8000-00805f9b34fb", "Cycling Power Feature");
attributes.put("00002a66-0000-1000-8000-00805f9b34fb", "Cycling Power Control Point");
attributes.put("00002a67-0000-1000-8000-00805f9b34fb", "Location and Speed");
attributes.put("00002a68-0000-1000-8000-00805f9b34fb", "Navigation");
attributes.put("00002a69-0000-1000-8000-00805f9b34fb", "Position Quality");
attributes.put("00002a6a-0000-1000-8000-00805f9b34fb", "LN Feature");
attributes.put("00002a6b-0000-1000-8000-00805f9b34fb", "LN Control Point");
}
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
意法半导体推出单片天线匹配IC,配合Bluetooth LE SoC和STM32无线MCU,让射频设计变得更轻松、快捷
WIDCOMM Bluetooth Software1.4.1 Build 6
利用Bluetooth®低功耗技术进行定位跟踪
利用创新的Bluetooth核心规范v5.1中的到达角(AoA)增强室内定位服务
蓝牙技术及其协议栈
Bluetooth readies spec for 2, 10-Mbit/s data rate
最新蓝牙耳机系统电路设计方案
Bluetooth 蓝牙 规范 10.1版
硕士学位论文 在蓝芽环境中传送H.263 视讯资料
BM70蓝牙解决方案
Achieving best-in-class RF performance in next gen Industrial and Medical connected applications
高性价比无线MCU如何帮您将低功耗蓝牙应用到更多产品中
CEVA Bluetooth 5.4 IP获得蓝牙技术联盟(SIG)认证包含新功能以满足快速增长的电子货架标签(ESL)市场需求
Bluetooth 有用過Bluetooth模組的嗎?介紹幾個廠家給我
意法半导体推出STM32WB1MMC Bluetooth LE 认证模块
BlueTooth Power 评估板线图
Bluetooth的过去与未来
可穿戴下的危机与Bluetooth LE芯片浅析
请推荐带有bluetooth的接口芯片,谢谢!
Microchip推出新型PIC单片机系列产品,以更简便方式添加Bluetooth低功耗连接功能
利用Bluetooth 低功耗技术进行定位跟踪方案解析
Nordic Semiconductor 重磅亮相 Bluetooth Asia 2026 以全域物联网全栈能力开启无线创新篇章
MSP430,and,Bluetooth MSP430 and Bluetooth
蓝牙无线通讯协议V1.1
开发智慧驾驶无限可能,驶向未来新科技
用Bluetooth Developer Studio缩短70%蓝牙开发时间
Nordic助力双模模块简化Bluetooth Classic Audio和LE Audio产品开发