我尝试从连接到我的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);
}
}
我真的需要这两个库与蓝牙和我的传感器工作。但是,如果有多个定义,我怎么能这样做呢?我已经试图删除一个库的一部分,以摆脱错误,但后来我的草图不能正常工作了。