以下是我的Simblee草图:
#include <SimbleeBLE.h>
void setup() {
Serial.begin(9600);
Serial.println("Waiting for connection...");
SimbleeBLE.deviceName = "Simblee";
SimbleeBLE.advertisementData = "data";
// SimbleeBLE.customUUID = "2220";
SimbleeBLE.advertisementInterval = MILLISECONDS(300);
SimbleeBLE.txPowerLevel = -20; // (-20dbM to +4 dBm)
SimbleeBLE.begin();
}
void loop() {
}
void SimbleeBLE_onConnect()
{
Serial.println("Simblee Connected");
}
void SimbleeBLE_onDisconnect()
{
Serial.println("Simblee Disconnected");
}
void SimbleeBLE_onReceive(byte *data, int len)
{
Serial.println("Data received");
SimbleeBLE.send(1);
printf("%s\n", data);
}
void serialEvent()
{
Serial.println("Serial event");
}
我可以轻松地连接和读取数据,写入它的位不适用于我的应用程序。永远不会调用SimbleeBLE_onReceive。
即使使用第三方BLE应用程序(如nRF Connect和BLE终端),它实际上也从未被调用过。
所以我怀疑问题出在我的arduino Sketch上,与android代码无关。
尝试编写时,android代码返回GATT_ERROR 133.
此代码中是否缺少任何内容?奇怪的是,我无法在网上找到任何我们只是向Simblee发送数据的例子(不使用SimlbeeMobile)
谢谢,
答案 0 :(得分:3)
尝试将onReceive签名更改为:
void SimbleeBLE_onReceive(char *data, int len)