0

我正在关注将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 轮询一次是错误的方式。我只想在有新信息时进行投票,但我也不知道如何在松鼠中做到这一点。有人可以指出发生这种情况的例子吗?

谢谢!

4

1 回答 1

1

我认为您将错误的数据类型传递给服务器对象的 show 方法。电动小鬼文档声明它需要一个字符串,server.show(string). 我认为这local是从hardware.uart57.read(). 您也可以从文档中看出。因此,您需要找到一种将字节转换为字符串的方法。我打赌你可以在这里找到答案。从我读到的 Squirrel 使用的 Unicode,可能有一个函数可以获取 Unicode 字节并将它们加载到字符串对象中。

于 2013-07-24T05:16:37.733 回答