iOS应用程序无法写入BLE Mini

时间:2016-11-20 22:36:14

标签: ios iphone swift bluetooth-lowenergy core-bluetooth

我正在设计一个应用程序,它将通过利用CoreBluetooth通过BLE Mini与TI LaunchPad进行通信,但是我很难在我的iPhone和Red Bear BLE Mini之间传输数据。目前,我正在尝试发送一个命令,指示Launchpad打开和关闭LED。我已经实现了所有的CoreBluetooth方法,并确认我已连接到BLE Mini。我也发现了这个设备的单一服务以及与我的iPhone应用程序相关的这个设备的五个特性,所以我知道我已连接到设备。确认此连接后,我尝试写入写入特性,但我不确定是否正确写入了这个特性。另外,我不确定我应该如何编码数据。我试过了ascii和utf8。这是我写的:

let string = "LED-ON"
let data = string.data(using: .ascii)
if manager.write_char != nil{
    print("trying")
    print(manager.write_char.uuid)
    peripheral.writeValue(data!, for: manager.write_char, type: CBCharacteristicWriteType.withoutResponse)

print语句确认此特性具有我定义为写特征的uuid

let WRITE_CHAR = "713D0004-503E-4C75-BA94-3148F18D941E"

我相信这是正确的写入特性。我也尝试了71230003.在Launchpad一侧,我上传了以下代码:

int incomingByte = 0;   // for incoming serial data

void setup() {
// put your setup code here, to run once:
  Serial.begin(19200);
  Serial1.begin(9600);
  pinMode(7, OUTPUT);     
}

void loop() {
// put your main code here, to run repeatedly: 
//if (Serial1.available()){
//    Serial.print("available");
//Read in data
   Serial.print(Serial1.available());
   Serial.print("   ");
   Serial.print(Serial1.read());
   Serial.print("\n");
   if (Serial1.available() > 0) {
     // read the incoming byte:
     incomingByte = Serial1.read();

     // say what you got:
     Serial.print("I received: ");
     Serial.println(incomingByte, DEC);
   }
}

在串行监视器中,我收到的所有内容均为可用检查中的0,读取方法中为-1,这两者均表示没有收到任何数据。我是否正确地将数据传输到BLE Mini?如果是这样,我读错了吗?另外,我应该做些什么来告诉BLE Mini传输数据?抱歉这个冗长的问题。非常感谢你的帮助。

0 个答案:

没有答案