我嘗試從連接到我的Arduino Blend Micro(http://redbearlab.com/blendmicro/)的溫度傳感器讀取數據,並通過藍牙信號發送此值到Android智能手機。當他們處於分離的草圖中時,這兩項任務都能夠成功運行。但是,當我將它們放在一個草圖中時(也將這些庫放在一起),會出現幾個錯誤。給定的錯誤告訴我,我的庫中有多個定義。Arduino BLE多重清晰
庫\ BLEPeripheral \效用\ aci_queue.cpp.o:在功能 `aci_queue_init(aci_queue_t *)':
C:\用戶\ XXX \文件\ Arduino的\庫\ BLEPeripheral \效用/ aci_queue.cpp:33:aci_queue_init的` 多個定義(aci_queue_t *)」
庫\ BLE_SDK_for_Arduino \ aci_queue.cpp.o:C:\用戶\ XXX \文件\ Arduino的\庫\ BLE_SDK_for_Arduino \ SRC/aci_queue。 cpp:31: 此處首先定義爲
庫\ BLEPeripheral \效用\ aci_queue.cpp.o:在功能 `aci_queue_init(aci_queue_t *)':
C:\用戶\ XXX \文件\ Arduino的\庫\ BLEPeripheral \效用/ aci_queue.cpp:33 : aci_queue_dequeue的`多個定義(aci_queue_t *, hal_aci_data_t *)」
庫\ BLE_SDK_for_Arduino \ aci_queue.cpp.o:aci_queue.cpp :(text._Z17aci_queue_dequeueP11aci_queue_tP14hal_aci_data_t +爲0x0): 第一這裏定義
問題似乎是在庫BLEPeripheral和BLE_SDK_for_Arduino。但互聯網的研究告訴我,他們應該是兼容的。
這裏是我的代碼:
//"RBL_nRF8001.h/spi.h/boards.h" is needed in every new project enter code here
#include <boards.h>
#include <string.h>
#include <Adafruit_BME280.h>
#include <RBL_nRF8001.h>
#include <RBL_services.h>
#include <SPI.h>
#include <EddystoneBeacon.h>
Adafruit_BME280 bme;
#define EDDYSTONE_BEACON_REQ 6
#define EDDYSTONE_BEACON_RDY 7
#define EDDYSTONE_BEACON_RST 4
EddystoneBeacon eddystoneBeacon = EddystoneBeacon(EDDYSTONE_BEACON_REQ, EDDYSTONE_BEACON_RDY, EDDYSTONE_BEACON_RST);
void setup() {
Serial.begin(9600);
delay(500);
bme.begin();
eddystoneBeacon.setLocalName("RoomSupervisor");
}
void loop() {
Serial.write("Start");
while(1){
Serial.write("Try to send... ");
eddystoneBeacon.begin(-18, "WHAT THE HELL DOESN'T WORK!?");
eddystoneBeacon.loop();
Serial.write(" succesful! \n");
delay(3000);
}
}
我真的需要這兩個庫與藍牙和我的傳感器工作。但是,如果有多個定義,我怎麼能這樣做呢?我已經試圖刪除一個庫的一部分,以擺脫錯誤,但後來我的草圖不能正常工作了。