luat的串口库

--功耗低不需要串口时调用pm.sleep("testUart")
pm.wake("testUart")
--注册串口收到数据后以中断方式调用read接口读取数据
uart.on(UART_ID,"receive",read)
--配置并且打开串口
uart.setup(UART_ID,9600,8,uart.PAR_NONE,uart.STOP_1)
--向设备发送0x01 0x02 0x03三个字节
write(string.fromHex("010203"))

--发送串口数据
function write(s)
log.info("testuart.write",s:toHex(),s)
uart.write(UART_ID,s)
end

--接收串口数据
local function read()
local data = ""
while true do
data = uart.read(UART_ID,"*l")
--数据不存在时停止接收数据
if not data or string.len(data) == 0 then break end
--打开下面的打印会耗时
log.info("testUart.read bin",data)
log.info("testUart.read hex",data:toHex())
--真正的串口数据处理函数
proc(data)
end
end

参考文献:
https://wiki.openluat.com/doc/luatApi/#uartsetup
https://wiki.openluat.com/doc/luatApi/#uarton-id-event-callback
https://ask.openluat.com/article/25

标签: none

添加新评论