如何为uart关闭lua interpeter? (Nodemcu)

时间:2016-11-21 15:05:20

标签: lua uart nodemcu

我需要在uart上与特殊设备进行通信。每500毫秒查询一次该设备,其响应存储在本地变量中。

这是一个最小的工作示例:

my_data = "no data yet"

function devReq()
    uart.write(0, "value?\n\r") -- request next value from device
end

function devStart()
    uart.alt(0) 
    uart.setup(0, 2400, 7, uart.PARITY_NONE, uart.STOPBITS_2, 0)
    uart.on("data", "\r", 
        function(data)
            my_data=data                -- store value
            tmr.alarm(1, 500, tmr.ALARM_SINGLE, devReq, 0) -- request next value
        end
    )
    devReq() -- request first value 
end

此代码有效。我可以用putty连接uart端口。我的问题是设备发回的答案也由lua解释:

> value?

423
stdin:1: unexpected symbol near '423'

> value?

2345
stdin:1: unexpected symbol near '2345'

> value?

因此,除了将值存储在my_data中之外,数据也由lua解释。我怎么能把它关掉?

1 个答案:

答案 0 :(得分:3)

uart.on()。这是第四个参数。您已经省略了这一点,因此它默认为1 - 即将输入传递给解释器。