我有一个循环,遍历我的传感器(项目),然后通过MQTT发送它们的状态。我在ESP8266开发板上运行该代码,并且在它们上面很少,这段代码可以工作,而在其他代码上,它会在一段随机的时间后抛出异常。
现在,尝试调试这个,我发现,如果我在行中取消注释Serial.println()
如下(它必须是那个确切的位置,把它放在任何其他行上,不会技巧),代码在几天内完美稳定。但是一旦删除println
,它就会在大约100秒后开始崩溃。这里发生了什么?什么是Serial.println()
,这使我的代码稳定?
void _loop(String priority)
{
for(std::vector<IItem*>::iterator it = items.begin(); it != items.end(); ++it)
{
if ((*it)->loopPriority == priority)
{
(*it)->loop();
for (std::map<String, String>::iterator pubChannel = (*it)->pubChannels.begin(); pubChannel != (*it)->pubChannels.end(); pubChannel++ )
{
//Serial.println(pubChannel->second);
mqtt.sendMsg(pubChannel->second, (*it)->command(pubChannel->first));
}
}
}
}