从BLE SHIELD Arduino到iPhone的流媒体数据

时间:2013-08-28 00:57:22

标签: iphone ios arduino bluetooth-lowenergy

我正在使用RedBear BLE Shield不断将数据流式传输到iOS。

我正在使用SDK中提供的聊天iOS应用来调试以下arduino代码:

#include <Arduino.h>
#include <SPI.h>
#include "ble.h"

unsigned int reading = 0;

void setup()
{
  SPI.setDataMode(SPI_MODE0);
  SPI.setBitOrder(LSBFIRST);
  SPI.setClockDivider(SPI_CLOCK_DIV16);
  SPI.begin();

  ble_begin();

  Serial.begin(57600);
}

unsigned char buf[16] = {0};
unsigned char len = 0;

void loop()
{

  ble_do_events();

  if(ble_connected()){

      reading = 10; //this is fake data for testing purposes.
      buf[0] = reading;
      reading = reading << 8;
      reading |= 11; //again same fake data
      buf[1] = reading & 0xFF;
      len = 2;
      Serial.print(reading); Serial.print(" -> LSB:"); Serial.print(buf[1], HEX); Serial.print(" MSB:"); Serial.println(buf[0], HEX);

    len = 2;
    for (int i = 0; i < len; i++)
      ble_write(buf[i]);
    ble_write(0x0D);
    len = 0;

    ble_do_events();

    delay(20);
  }
}

我遇到以下问题: 我第一次尝试连接到BLE Shield时它只执行一次循环并且卡住了。然后,如果我断开连接并重新连接,数据就会按照我的意愿开始流式传输。

有人试过吗?

1 个答案:

答案 0 :(得分:0)

我使用BLE Simple来测试你的程序。你的确陷入困境。但如果你评论最后一个ble_do_events(),一切都很好。

似乎应用程序会在一段时间后自动连接和断开BLE屏蔽。我是新手,并不是真的理解这个...是因为当调用ble_write时,ble会广播应用程序以通知这是一个短信。那么应用程序将连接ble并获取短信?