Appearance
串口模块 AI 规范
本文档用于 AI 生成串口通信 Lua 代码。参数规则已按 HexLuaAPI_Serial.hpp 校对。
打开串口
支持两种写法:
lua
local sp, err = openSerial("/dev/ttyUSB0", 115200)lua
local serial = require("serial")
local sp, err = serial.open("/dev/ttyUSB0", 115200)参数:
dev:字符串,必须以/dev/tty或/dev/serial/开头。baud:整数波特率。
支持波特率:
text
9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 4000000打开失败返回:
lua
nil, "错误信息"读写数据
lua
local n = sp:write("hello")
local data = sp:read(256, 100)
sp:flush()参数:
write(data):data为字符串,可以是普通文本或二进制字符串。read(max_len, timeout_ms):max_len可选,默认256,范围1..65536。timeout_ms可选,默认100。0表示非阻塞立即返回。- 大于
0表示最多等待指定毫秒。 - 小于
0表示阻塞直到读到数据或错误。
返回值:
write返回实际写入字节数。read返回字符串;超时或出错返回空字符串""。flush无返回值。
列出设备
lua
local nodes = listDevNodes("ttyUSB")
for i, node in ipairs(nodes) do
print(i, node)
end规则:
filter可选,不传表示不过滤。- 返回 Lua 数组。
推荐模板
lua
local sp, err = openSerial("/dev/ttyUSB0", 115200)
if not sp then
print("打开串口失败:", err)
return
end
sp:write("AT\r\n")
local data = sp:read(1024, 500)
if data ~= "" then
print("收到:", data)
else
print("未收到数据")
endAI 生成禁忌
- 不要生成 Windows 串口名,例如
COM3。 - 不要使用不在支持列表中的波特率。
- 不要假设
read失败返回nil,它返回空字符串。 - 不要忘记检查
openSerial的nil, err。