标签: visualmicro

在 Arduino 中的 setup() 之外调用构造函数时出现问题

我有一个 OLED SPI 显示屏 128x64,我使用 Adafruit_GFX 和 Adafruit_SSD1306 来控制它。我有一个类名 Engine,它有一个像这样的公共构造函数:

Engine::Engine() {
    display.begin(2U, 0U, true, false);

  // Define some pinmode not a problem
    pinMode(button1Pin, INPUT_PULLUP);
    pinMode(button2Pin, INPUT_PULLUP);
    pinMode(xPin, INPUT);
    pinMode(yPin, INPUT);
    pinMode(buzzerPin, OUTPUT);

  //clear the screen and display
    clearScreen();
    display.display();
    time = 0;
}
Run Code Online (Sandbox Code Playgroud)

然后在我的 .ino 文件中我有这样的内容:

Engine engine = Engine();

void setup() {
    Serial.begin(115200);
    Serial.println("testing...");
}
Run Code Online (Sandbox Code Playgroud)

问题是程序有点冻结。我不知道代码是否有效(我认为没有)。我尝试调试它,如果我在设置中声明了引擎,那就没问题了。或者,如果我删除该行display.begin()并将声明保留在设置之外。为什么?我需要打电话display.begin()进去吗setup()?如何摆脱这个困境?

PS:我为此使用了视觉微型。但之后我将代码移至Arduino,问题仍然出现。

c++ arduino visual-studio visualmicro

0
推荐指数
1
解决办法
915
查看次数

标签 统计

arduino ×1

c++ ×1

visual-studio ×1

visualmicro ×1