与 CC2540 蓝牙 LE 设备配对
Posted
技术标签:
【中文标题】与 CC2540 蓝牙 LE 设备配对【英文标题】:Pairing to a CC2540 Bluetooth LE Device 【发布时间】:2012-09-18 20:15:50 【问题描述】:我正在尝试使用我的摩托罗拉 RAZR 连接到基于 TI 的 CC2540 的 BLE 设备(我有 TI 的密钥卡,以及 connectblue OLP425 的另一个设备),到目前为止我唯一的成功是一个名为 Propagation on我无法获得资源的市场。
我尝试使用此代码连接到设备,但我最不明白的是 UUID,
我在 iPad 3 上下载了一个应用程序,发现设备具有以下 UUID 00000000-0000-0000-ff31-1a064f8c5966
private static final UUID SPP_UUID = UUID.fromString("00000000-0000-0000-ff31-1a064f8c5966");
BluetoothDevice bd =BluetoothAdapter.getDefaultAdapter().getBondedDevices().iterator().next();
//I only have I device paired that is the Bluetooth Low Energy Device so using the first Device returned by the iterator is fine.
try
BluetoothSocket bs = bd.createRfcommSocketToServiceRecord(UUID);
bs.connect();
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
我得到的只是 logcat 中的服务发现失败
在几乎所有每个人都在使用的示例中
00000000-0000-1000-8000-00805f9b34fb
如果我在应用程序中走得更远,它会提示电池服务是 UUID 0x180f
我只想创建一个应用程序来读取此服务的值,这是一个简单的十进制值
过去有人成功配对过 BLE 设备吗?
谢谢
乔纳森
【问题讨论】:
您显示的代码用于连接传统蓝牙设备。这对 LE 不起作用。 谢谢,我找到了摩托罗拉api的connectLe和connectGatt函数,我还没有成功,但我会继续努力。 【参考方案1】:我已经能够使用心率监测器连接到我的 CC2540。 我使用 CCDebugger 刷新了固件,并使用 0000180d-0000-1000-8000-00805f9b34fbas 的 UUID 我已经能够读取一个值。
使用 Motorola_BLE_profile 示例应用并进行一些修改。
primaryServices = mGattService.getGattPrimaryServices(device);
if (primaryServices == null)
String message = "Connection failed !";
Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
return;
for (i = 0; i < primaryServices.length; i++)
Log.v(TAG, "primary service " + primaryServices[i]);
if (primaryServices[i].equalsIgnoreCase(hrmUUID))
try
status = mGattService.connectGatt(device, hrmUUID, callback1);
if (status == true)
mDevice = device;
mLeState = CONNECTING;
BluetoothLeReceiver.isDevicePickerPending = false;
else
String message = "Connection failed !";
Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
catch (Exception e)
Log.e(TAG,"Exception while calling gatt Connect");
return;
if (i == primaryServices.length)
Log.v(TAG,"Primary Service not found");
String message = "Connection failed !";
Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
【讨论】:
以上是关于与 CC2540 蓝牙 LE 设备配对的主要内容,如果未能解决你的问题,请参考以下文章
如何在 swift Xcode 中以编程方式绑定/配对蓝牙 LE 设备?
通过蓝牙/蓝牙 LE 在 iPhone 应用程序中配对和连接