0

我写了这段代码:

void NTP::setTime() {
    connWithNTP();
    if(!timeNTPReadyToSet) {
        Serial.println("Getting time from RTC");
        timeFromRTC();
        if (year == 2000) {
            while(dhcpTest == false && timeNTPReadyToSet == false) {
                Serial.print("Kolaei apo to DHCP");
                startEthernetAndUdp();
                connWithNTP();
                timeFromNTP();
            }
        }
    }
    else {
        Serial.print("Getting time from NTP");
        timeFromNTP();
    }
    serialPrinting();
}

根据我在一切正常时所做的事情(互联网连接正常且NTP服务器正常工作)。代码将用于else print从 NTP 服务器获取时间(发生这种情况),我的问题是它不执行 serialPrinting。

此功能仅在串行监视器中打印时间。函数 timeFromNTP 和 timeFromRTC 只是设置包含日历和时间的变量。

我的串行监视器打印从 NTP 服务器获取时间,然后它不打印任何内容。它只是从头开始,因为我已经在循环中设置了这个 setTime 函数。

是否可以让 serialPrinting() 运行?如果我调用 setTime() 时此函数会以任何一种方式执行,我会担心 serialPrinting。

我明白了:

0

0

0

第 4 个 NTPServer 工作

从 NTP 获取时间

0

0

0

0

第 4 个 NTPServer 工作

从 NTP 获取时间

零和“4th NTPServer working”来自 connWithNTP。

4

1 回答 1

0

好吧,除非任何其他函数进入循环或通过再次调用 setTime 卡住,否则无法不执行 serialPrinting。我有一些从这里看不到的子功能,它们出于安全原因调用 setTime(现在不需要)。所以有一个循环。如果没有可以跳过serialPrinting 的循环或内部错误,这段代码是不可能的。

于 2013-02-22T12:44:13.153 回答