当我发送号码" 5"通过串口监视器到Arduino然后Serial.read()
将输出" 53"因为53是" 5"的ASCII值。
我需要做的是转换" 53" (或Serial.read()
给出的任何其他数字)到正常整数,所以当我发送" 5"到了Arduino然后Arduino将把它视为" 5"不是" 53"。
此外我无法使用Serial.parseInt()
,因为它有1秒延迟,但我需要立即收到该号码。
答案 0 :(得分:0)
parseInt()
的延迟可能是由于您的串行超时。
parseInt()
可能 仍然适用于您,如Arduino网站上this discussion中所述。
或者,您可以从根本上缩短超时时间,如下所述:
迈克尔马戈利斯' " Arduino Cookbook" (第113页,第113页)救援!事实证明,Serial类(扩展Stream类)使用Stream.setTimeout()函数。超时的默认值为1000(一秒)。我只是将它设置为更小的东西,比如50毫秒,草图很漂亮而且活泼。这是完整的示例草图。关闭串行监视器中的行结束...