Arduino 101/Genuino 101板子与arduino 相比多了一些功能,其中一个就是多了一块4.0的蓝牙BLE。
4.0蓝牙接收数据的协议与2.0的有所不同,更加复杂。
如下代码为101板子自带的BLE模块接收char类型数据源码。
#include <CurieBLE.h>
BLEService ledService("19B10000-E8F2-537E-4F6C-D104768A1214");
BLEUnsignedCharCharacteristic switchCharacteristic("19B10001-E8F2-537E-4F6C-D104768A1214", BLERead | BLEWrite);
void setup() {
Serial.begin(9600);
BLE.begin();
BLE.setLocalName("LIU_BLE_01");
BLE.setAdvertisedService(ledService);
ledService.addCharacteristic(switchCharacteristic);
BLE.addService(ledService);
switchCharacteristic.setValue(0);
BLE.advertise();
}
void loop() {
BLEDevice central = BLE.central();
if (central) {
Serial.print("Connected to central: ");
Serial.println(central.address());
while (central.connected()) {
if (switchCharacteristic.written()) {
Serial.println(switchCharacteristic.value() );
}
}
Serial.print(F("Disconnected from central: "));
Serial.println(central.address());
}
}