我有一个 128x64 的 OLED SPI 显示器,我使用 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;
}
然后在我的 .ino 文件中,我有这样的东西:
Engine engine = Engine();
void setup() {
Serial.begin(115200);
Serial.println("testing...");
}
问题是程序有点冻结。我不知道代码是否有效(我认为不是)。我尝试对其进行调试,如果我在设置中声明了引擎,那就没问题了。或者,如果我删除该行display.begin()
并将声明保留在设置之外。为什么?我需要在display.begin()
里面打电话吗setup()
?如何摆脱这个?
PS:我为此使用了视觉微。但之后我将代码移至 Arduino,问题仍然出现。