我一直在尝试使用和PlatformIO作为我的“简单oled GUI”。我遇到了麻烦,包括那些没有任何错误的库。请注意,我是VScode和PlatformIO的初学者。提前感谢您的任何建议:)
这是我的代码(尚未完成的问题bcs):
#include <Arduino.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#include <Wire.h>
#include <SPI.h>
#define outputA 2
#define outputB 3
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
#define SCREEN_ADRESS 0x3D
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
const int numpages = 3;
int thispage = 0;
int counter = 0;
int aState = 0;
int aLastState = 0;
int textX0= 9;
int textY0 = 34;
int textX1 = 9;
int textY1 = 34;
int textY2 = 34;
int txtsize = 1;
void setup() {
pinMode (outputA,INPUT);
pinMode (outputB,INPUT);
Serial.begin (9600);
aLastState = digitalRead(outputA);
display.drawRect(4,22,121,19,WHITE);
display.drawLine(7,42,1,1,848484);
}
void loop() {
aState = digitalRead(outputA);
if (aState != aLastState){
if (digitalRead(outputB) != aState) {
counter ++;
} else {
counter --;
}
Serial.print("Position: ");
Serial.println(counter);
thispage = counter/2;
}
if(thispage < 0) {
thispage = numpages;
}else if (thispage > numpages){
thispage = 0;
}
textX0 = textX1;
textY2 = textY1;
textY2 = textY1;
if(thispage == 0){
textX0 = 6;
textY0 = 18;
textX1 = 9;
textY1 = 34;
textY2 = 56;
txtsize = 2;
}else{
textX0 = 9;
textY0 = 18;
textX1 = 9;
textY1 = 34;
textY2 = 56;
txtsize = 1;
}
display.setTextSize(txtsize);
display.setCursor(textX0,textY0);
display.setTextColor(WHITE);
display.print("menu1");
display.setTextSize(1);
display.setCursor(textX1,textY1);
display.write("menu2");
display.setCursor(textX1,textY2);
display.write("menu3");
display.print(thispage);
aLastState = aState;
display.clearDisplay();
}
这是我的c_cpp_properties.json文件:
{
"configurations": [
{
"name": "PlatformIO",
"includePath": [
"c:/Users/danie/Documents/Arduino/Touchscreen UI/UI_test_touch/include",
"c:/Users/danie/Documents/Arduino/Touchscreen UI/UI_test_touch/src",
"c:/Users/danie/Documents/Arduino/Touchscreen UI/UI_test_touch/.pio/libdeps/nano/Adafruit SSD1306",
"c:/Users/danie/Documents/Arduino/Touchscreen UI/UI_test_touch/.pio/libdeps/nano/Adafruit-TFT-LCD",
"c:/Users/danie/Documents/Arduino/Touchscreen UI/UI_test_touch/.pio/libdeps/nano/Adafruit GFX Library",
"c:/Users/danie/Documents/Arduino/Touchscreen UI/UI_test_touch/.pio/libdeps/nano/Adafruit BusIO",
"C:/Users/danie/.platformio/packages/framework-arduino-avr/libraries/Wire/src",
"c:/Users/danie/Documents/Arduino/Touchscreen UI/UI_test_touch/.pio/libdeps/nano/GFX Library for Arduino/src",
"C:/Users/danie/.platformio/packages/framework-arduino-avr/libraries/SPI/src",
"c:/Users/danie/Documents/Arduino/Touchscreen UI/UI_test_touch/.pio/libdeps/nano/Adafruit TouchScreen",
"C:/Users/danie/.platformio/packages/framework-arduino-avr/cores/arduino",
"C:/Users/danie/.platformio/packages/framework-arduino-avr/variants/eightanaloginputs",
"C:/Users/danie/.platformio/packages/framework-arduino-avr/libraries/EEPROM/src",
"C:/Users/danie/.platformio/packages/framework-arduino-avr/libraries/HID/src",
"C:/Users/danie/.platformio/packages/framework-arduino-avr/libraries/SoftwareSerial/src",
""
],
"browse": {
"limitSymbolsToIncludedHeaders": true,
"path": [
"c:/Users/danie/Documents/Arduino/Touchscreen UI/UI_test_touch/include",
"c:/Users/danie/Documents/Arduino/Touchscreen UI/UI_test_touch/src",
"c:/Users/danie/Documents/Arduino/Touchscreen UI/UI_test_touch/.pio/libdeps/nano/Adafruit SSD1306",
"c:/Users/danie/Documents/Arduino/Touchscreen UI/UI_test_touch/.pio/libdeps/nano/Adafruit-TFT-LCD",
"c:/Users/danie/Documents/Arduino/Touchscreen UI/UI_test_touch/.pio/libdeps/nano/Adafruit GFX Library",
"c:/Users/danie/Documents/Arduino/Touchscreen UI/UI_test_touch/.pio/libdeps/nano/Adafruit BusIO",
"C:/Users/danie/.platformio/packages/framework-arduino-avr/libraries/Wire/src",
"c:/Users/danie/Documents/Arduino/Touchscreen UI/UI_test_touch/.pio/libdeps/nano/GFX Library for Arduino/src",
"C:/Users/danie/.platformio/packages/framework-arduino-avr/libraries/SPI/src",
"c:/Users/danie/Documents/Arduino/Touchscreen UI/UI_test_touch/.pio/libdeps/nano/Adafruit TouchScreen",
"C:/Users/danie/.platformio/packages/framework-arduino-avr/cores/arduino",
"C:/Users/danie/.platformio/packages/framework-arduino-avr/variants/eightanaloginputs",
"C:/Users/danie/.platformio/packages/framework-arduino-avr/libraries/EEPROM/src",
"C:/Users/danie/.platformio/packages/framework-arduino-avr/libraries/HID/src",
"C:/Users/danie/.platformio/packages/framework-arduino-avr/libraries/SoftwareSerial/src",
""
]
},
"defines": [
"PLATFORMIO=60109",
"ARDUINO_AVR_NANO",
"F_CPU=16000000L",
"ARDUINO_ARCH_AVR",
"ARDUINO=10808",
"__AVR_ATmega328P__",
""
],
"cStandard": "gnu11",
"cppStandard": "gnu++11",
"compilerPath": "C:/Users/danie/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe",
"compilerArgs": [
"-mmcu=atmega328p",
""
]
}
],
"version": 4
}
我从未向ChatGpt咨询过这些错误。我什么都做了
this tutorial
说,所以我有g++,我可以在哪里做一个新项目并工作,但我不能将它与PlatformIO一起使用。我确实编辑了c_cpp_properties.json,但仅此而已。
以下是我一直在谈论的错误:
[{
"resource": "/c:/Users/danie/Documents/Arduino/Touchscreen UI/UI_test_touch/src/olednano.cpp",
"owner": "C/C++: IntelliSense",
"code": "1696",
"severity": 8,
"message": "#include errors detected. Please update your includePath. Squiggles are disabled for this translation unit (C:\\Users\\danie\\Documents\\Arduino\\Touchscreen UI\\UI_test_touch\\src\\olednano.cpp).",
"source": "C/C++",
"startLineNumber": 6,
"startColumn": 1,
"endLineNumber": 6,
"endColumn": 20
}]
和
[{
"resource": "/c:/Users/danie/Documents/Arduino/Touchscreen UI/UI_test_touch/src/olednano.cpp",
"owner": "C/C++: IntelliSense",
"code": "1696",
"severity": 8,
"message": "cannot open source file \"iostream\". Please run the 'Select IntelliSense Configuration...' command to locate your system headers.",
"source": "C/C++",
"startLineNumber": 6,
"startColumn": 1,
"endLineNumber": 6,
"endColumn": 20
}]