【发布时间】:2020-07-31 08:59:36
【问题描述】:
我正在安装 VisualStudio Code 和 Platform.IO 进行开发。
我正在使用带有 Arduino 框架的 ESP32 / TTGO T-CALL 并添加了 RTCLib.h Adafruit v 1.11.0 不幸的是,软件没有编译,因为我收到以下错误:
Building in release mode
Compiling .pio\build\esp32dev\src\main.cpp.o
Compiling .pio\build\esp32dev\libfa0\TinyWireM\USI_TWI_Master.cpp.o
C:\Users\aleil\.platformio\lib\TinyWireM\USI_TWI_Master.cpp:28:27: fatal error: avr/interrupt.h: No such file or directory
compilation terminated.
Archiving .pio\build\esp32dev\lib46d\libRTClib.a
*** [.pio\build\esp32dev\libfa0\TinyWireM\USI_TWI_Master.cpp.o] Error 1
============================================ [FAILED] Took 8.69 seconds ============================================
The terminal process "C:\Users\aleil\.platformio\penv\Scripts\platformio.exe 'run'" terminated with exit code: 1.
Terminal will be reused by tasks, press any key to close it.
这里有包含代码:
#include <Arduino.h>
#include <StreamDebugger.h>
#include <ArduinoHttpClient.h>
#include <ArduinoJson.h>
#include <OneWire.h> // x ds18b20 temperature sensors
#include <DallasTemperature.h> // x ds18b20 temperature sensors
#include <esp_task_wdt.h>
#include "SPI.h" // Used to define SPI on SPI1
#include "SD.h"
#include <Wire.h>
#include <RTClib.h>
所以我试图找到一个解决方案,但我找不到。有人有一些提示或解决方案吗?
【问题讨论】:
-
看起来这个 libfa0/TinyWireM 库正在使用特定于 AVR 架构的头文件。您需要将其调整为 ESP32。在最好的情况下是一个简单的预处理器定义,在最坏的情况下,您将需要编辑库。
-
您的
platformio.ini设置是什么? TinyWire 是 RTClib 的依赖,但是只有当 MCU 是 ATtiny 时才应该包含它,从RTClib.cpp 可以看到,如果 MCU 不是__AVR_ATtiny85__,将使用Wire.h。 -
谢谢,我在 platformio.ini "lib_ignore = TinyWireM" 中添加了这个,它运行良好
标签: arduino esp32 platformio