好吧,别样。
我们知道Arduino loop()函数会连续循环内部的所有内容。
想象一下一个简单的p1()触发函数可以执行某些操作。至少有一种方法可以将其重复X次(此处为hold变量)..以及如何?这样一无所获:if (ledPattern == '1') {do{p1();} while (hold > 1);}
或if(ledPattern == '1'){for (int i = hold; i > 0 ; i--){p1();}}
,但我可以想象问题出在代码的其他地方...
答案 0 :(得分:0)
Arduino中的loop
函数旨在无限循环,但是我想这就是您想要的,因为您可能希望不仅检查一次消息。
如果您希望代码在所有if
语句的结尾处停止,是否可以在代码的末尾添加while(1);
?
您如何阅读邮件?这部分代码可能很重要。
(不确定是否值得回答,但我无法发表评论……)
答案 1 :(得分:0)
loop()函数精确执行其名称所暗示的内容,并循环
如果要永久停止循环,可以在其末尾添加while(1);
。这样,您的Arduino将调用一次loop()
,然后陷入无限循环,直到您重置它为止。但是,当然,您的Arduino不会再做其他任何事情。
如果您不想一遍又一遍地以相同的if结束,则必须确保mqttmessage
的运行一次后loop()
的值会发生变化。
否则,假设mqttmessage
等于'1'
,您将输入第一个if语句并调用p1()
保持时间。然后,当再次运行循环并且mqttmessage
仍然具有相同的值时,您将再次在第一个if语句中结束并调用p1()
保持时间,依此类推。
如果您无法在每个循环中更新mqttmessage
的值,并且如果您不希望无限期冻结Arduino,则可以使用存储的变量(如果您输入了if语句befor)并且每个if语句都需要检查该变量,因此您无需再次输入。