我必须与Adafruit BLE SPI朋友尽快通过BLE发送数据。我对我想使用的GATT服务有所了解。在adafruit的heartratemonitor.ino BLE示例中,我对它们发送数据的方式感到困惑。看来他们只是使用AT + GATTCHAR =命令更新了心率测量特性。然后,只需从其Bluefruit应用程序中读取更新。这种发送数据的方法似乎非常缓慢,而且效率极低。我已经在Adafruit BLE library中寻找了BLE SPI的朋友,但我似乎找不到其他合法的方式来更新/发送数据。我是否在我的理解范围内缺少某些东西,或者这不是发送数据的最佳库?
注意:我必须使用SPI从缓冲区读取数据,然后通过蓝牙发送数据。考虑只使用SPI库(难度较大)和任何其他北欧或nRF51822库,但学习曲线似乎非常陡峭。
void loop(void)
{
int heart_rate = random(50, 100);
Serial.print(F("Updating HRM value to "));
Serial.print(heart_rate);
Serial.println(F(" BPM"));
/* Command is sent when \n (\r) or println is called */
/* AT+GATTCHAR=CharacteristicID,value */
ble.print( F("AT+GATTCHAR=") );
ble.print( hrmMeasureCharId );
ble.print( F(",00-") );
ble.println(heart_rate, HEX);
/* Check if command executed OK */
if ( !ble.waitForOK() )
{
Serial.println(F("Failed to get response!"));
}
/* Delay before next measurement update */
delay(1000);
}
答案 0 :(得分:0)
之所以变慢是因为循环结束时的延迟。
/* Delay before next measurement update */
delay(1000);
这是一种要求Bluefruit等待一秒钟(1000毫秒)然后再次执行的方法。
减少该数量应加快循环。