1

我正在尝试使用 PlatformIO 让 ESP8266 与 Arduino 一起工作。但是,导入 SoftwareSerial.h 时出现错误

尝试:Arduino IDE、PlatformIO、更改波特率、更改端口

如何让 SoftwareSerial 与 ESP8266 一起使用?

#include <SoftwareSerial.h>

SoftwareSerial BTserial(3, 1); // RX | TX

char Bluetooth_Name = ' ';

void setup() 
{
    // Arduino IDE serial monitor
    Serial.begin(9600);

    // HC-05 default serial speed for AT mode is 38400
    BTserial.begin(38400);  

    // Wait for hardware to initialize
    delay(1000);

    // Print debug string
}

void loop()
{

   // Keep reading from HC-05 and send to Arduino Serial Monitor
   if (BTserial.available())
   {
      reading = BTserial.read();
      Serial.println(reading);
   }

   // Keep reading from Arduino Serial Monitor and send to HC-05
   if (Serial.available())
   {
      reading = Serial.read();
      BTserial.write(reading);
   }
}

我想毫无错误地使用 SoftwareSerial。


错误代码:

Compiling .pio\build\huzzah\lib0be\EspSoftwareSerial_ID168\SoftwareSerial.cpp.o
In file included from C:\Users\Bart\.platformio\lib\EspSoftwareSerial_ID168\src/SoftwareSerial.h:27:0,
                 from C:\Users\Bart\.platformio\lib\EspSoftwareSerial_ID168\src\SoftwareSerial.cpp:23:
C:\Users\Bart\.platformio\lib\EspSoftwareSerial_ID168\src/circular_queue/circular_queue.h:144:10: error: expected ';' at end of member declaration
     bool IRAM_ATTR push(T&& val);
          ^
4

2 回答 2

1

实际上,标准软件串行库对我的 NodeMCU v1.0 不起作用......而且在极少数情况下,它非常有限。也许看看这个库: ESP 8266/32 Software Serial Library

于 2019-09-09T21:38:53.513 回答
0

在 platformio.ini 中,您可以添加以下行以选择与最新发布的 8266 平台编译的特定版本

lib_deps_external =
  plerup/espsoftwareserial#5.0.3 ; this version compiles with a standard 8266 platform

使用这种方式,代码直接从 github 获取。

于 2019-09-08T15:29:24.137 回答