我正在关注将arduino 连接到电动 imp 的 sparkfun 教程。我只有一个 arduino 和 imp,所以我试图让我在 arduino 串行监视器中输入的任何内容都使用server.show()
.
我已将 sparkfun 代码中的一个函数修改为如下所示:
function pollUart()
{
imp.wakeup(0.00001, pollUart.bindenv(this)); // schedule the next poll in 10us
local byte = hardware.uart57.read(); // read the UART buffer
// This will return -1 if there is no data to be read.
while (byte != -1) // otherwise, we keep reading until there is no data to be read.
{
// server.log(format("%c", byte)); // send the character out to the server log. Optional, great for debugging
// impeeOutput.set(byte); // send the valid character out the impee's outputPort
server.show(byte)
byte = hardware.uart57.read(); // read from the UART buffer again (not sure if it's a valid character yet)
toggleTxLED(); // Toggle the TX LED
}
}
server.show(byte)
只显示看似随机的数字。我知道这是为什么,我只是不知道如何解决它,因为我对 UART 和松鼠不太熟悉。
local byte = hardware.uart57.read();
从 arduino 以字节形式读取 ascii 字符(我认为),并且在我使用server.show(byte)
. 我如何在松鼠中做到这一点?另外,我认为每 10us 轮询一次是错误的方式。我只想在有新信息时进行投票,但我也不知道如何在松鼠中做到这一点。有人可以指出发生这种情况的例子吗?
谢谢!