【发布时间】:2014-10-01 23:27:22
【问题描述】:
我是 lua 新手,我正在尝试从端口 ttyACM0 接收数据,我可以通过以下方式写入端口:
wserial = io.open("/dev/ttyACM0","w")
wserial:write("hellloooo")
wserial:flush()
我想,因为我可以像写入文件一样写入它,所以我可以像读取文件一样读取它。但是当我尝试阅读它(使用下面的代码)时,我最终陷入了无限循环。
rserial=io.open("/dev/ttyACM0","r")
while chaine==nil do
chaine=rserial:read()
rserial:flush()
end
print(chaine)
所以我的问题是我做错了什么,如何从端口 ttyACM0 读取?
【问题讨论】:
-
使用
io.read()将读取直到它收到一个换行符。也许你没有发送任何给它?看看这个lua.org/pil/21.1.html(大约一半,有关于io.read的东西)。我会尝试:read("*all"),或者,如果您知道消息的长度,:read(10)(10 个字符)。您可以随时使用:read(1)获取一个字节,然后决定是否需要更多。 -
谢谢回复,我试过了,还是不行。您还有其他建议吗?
-
嗯,检查一下你是否得到了任何东西怎么样?
cat /dev/ttyACM0 -
好的,所以我尝试了我能想到的一切,但是当我执行 cat /dev/ttyACM0 时你是对的我可以成功读取文件。所以我想知道我是否可以将 python 与 lua 集成?
标签: file-io lua serial-port