上面Timeout我用hal_max_delay代替
时间: 2023-07-04 13:06:29 浏览: 87
好的,那您现在的代码应该是这样的:
```c++
#include <Arduino.h>
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
uint32_t delayTime = 500;
uint32_t hal_max_delay = 100;
void setup() {
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
}
void loop() {
display.clearDisplay();
display.setCursor(0, 0);
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.println("Hello, world!");
display.display();
uint32_t start = millis();
while (millis() - start < delayTime && millis() - start < hal_max_delay) {
// do nothing
}
}
```
这样修改后,如果 `delayTime` 大于等于 `hal_max_delay`,则最长延迟时间为 `hal_max_delay`。否则,最长延迟时间为 `delayTime`。
阅读全文