赞
踩
这里我下载的是合宙官方的串口工具,点击llcom串口调试工具下载。
功能列表
由于我是直接用的官方的开发板,虽然官方把主串口引出来了,但是还是要我们焊接一个插排才能够使用
合宙780eg开发板的主串口也就是MAIN_XXX用来接收和发送数据,我们需要这两个引脚,和一个地
下面是我的开发板的焊接
焊接好了需要一个TTL–USB的工具
-- LuaTools需要PROJECT和VERSION这两个信息 PROJECT = "uart_1" VERSION = "1.0.0" -- 引入必要的库文件(lua编写), 内部库不需要require sys = require("sys") local uartid = 1 -- 根据实际设备选取不同的uartid --初始化 uart.setup( uartid,--串口id 921600,--波特率 8,--数据位 1--停止位 ) -- 收取数据会触发回调, 这里的"receive" 是固定值 uart.on(uartid, "receive", function(id, len) local s = "" repeat -- s = uart.read(id, 1024) s = uart.read(id, len) if #s > 0 then -- #s 是取字符串的长度 log.info("uart", "receive", id, #s, s) log.info("uart", "receive", id, #s, s:toHex()) end if #s == len then break end until s == "" end) -- 用户代码已结束--------------------------------------------- -- 结尾总是这一句 sys.run() -- sys.run()之后后面不要加任何语句!!!!!
把写好的代码烧录到开发板中,不会烧录的请看我之前的帖子Luatools下载调试工具
打开串口调试工具,打开串口
发送消息
可以看到 log.info("uart", "receive", id, #s, s) log.info("uart", "receive", id, #s, s:toHex())
的区别,
– 如果传输二进制/十六进制数据, 部分字符不可见, 不代表没收到
– 关于收发hex值,请查阅 https://doc.openluat.com/article/583
我们直接每秒循环给串口发送数据吧
-- LuaTools需要PROJECT和VERSION这两个信息 PROJECT = "uart_1" VERSION = "1.0.0" -- 引入必要的库文件(lua编写), 内部库不需要require sys = require("sys") local uartid = 1 -- 根据实际设备选取不同的uartid --初始化 uart.setup( uartid,--串口id 921600,--波特率 8,--数据位 1--停止位 ) sys.timerLoopStart(function() uart.write(uartid,"hello,cheney") end,1000) -- 收取数据会触发回调, 这里的"receive" 是固定值 uart.on(uartid, "receive", function(id, len) local s = "" repeat -- s = uart.read(id, 1024) s = uart.read(id, len) if #s > 0 then -- #s 是取字符串的长度 -- 如果传输二进制/十六进制数据, 部分字符不可见, 不代表没收到 -- 关于收发hex值,请查阅 https://doc.openluat.com/article/583 log.info("uart", "receive", id, #s, s) log.info("uart", "receive", id, #s, s:toHex()) end if #s == len then break end until s == "" end) -- 用户代码已结束--------------------------------------------- -- 结尾总是这一句 sys.run() -- sys.run()之后后面不要加任何语句!!!!!
注意看秒数,每秒发送一次。
发送和接收不冲突
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。