【问题标题】:Arduino BLE multiple definitionArduino BLE多重定义
【发布时间】:2016-08-16 14:32:02
【问题描述】:

我尝试从连接到我的 Arduino Blend Micro (http://redbearlab.com/blendmicro/) 的温度传感器中读取数据,并通过蓝牙信标将此值发送到 Android 智能手机。当两个任务在单独的草图中时,它们都能够成功运行。但是当我将它们放在一个草图中(也将库放在一起)时,出现了几个错误。给定的错误告诉我,我的库中有多个定义。

libraries\BLEPeripheral\utility\aci_queue.cpp.o:在函数中 `aci_queue_init(aci_queue_t*)':

C:\Users\XXX\Documents\Arduino\libraries\BLEPeripheral\utility/aci_queue.cpp:33: `aci_queue_init(aci_queue_t*)'的多重定义

库\BLE_SDK_for_Arduino\aci_queue.cpp.o:C:\Users\XXX\Documents\Arduino\libraries\BLE_SDK_for_Arduino\src/aci_queue.cpp:31: 首先在这里定义

libraries\BLEPeripheral\utility\aci_queue.cpp.o:在函数中 `aci_queue_init(aci_queue_t*)':

C:\Users\XXX\Documents\Arduino\libraries\BLEPeripheral\utility/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);
        }
    }

我真的需要这两个库来使用蓝牙和我的传感器。但是,当有多个定义时,我该怎么做呢?我已经尝试删除一个库的部分内容以消除错误,但后来我的草图不再正常工作。

【问题讨论】:

    标签: c++ arduino bluetooth-lowenergy


    【解决方案1】:

    尝试仅使用 RedBearLabs 库。不要删除库的部分内容。删除 librarys 文件夹中的 sdk,只复制您想要(需要)包含在 Arduino 库文件夹中的必要库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多