zl程序教程

您现在的位置是:首页 >  后端

当前栏目

【ESP8266之LUA开发】番外篇2:实战LUA使用技巧【总结版】

开发 总结 实战 技巧 lua Esp8266 番外篇 使用
2023-09-11 14:20:36 时间

LUA开发基础知识,移步<这里>。


  • 关于数据类型, LUA只有table 表(数组+字符串), 并且下标还是从1开始的!

  • "~=" 这个在LUA中才是不等于号

  • LUA只要赋值一个变量,这个变量就自动定义为全局变量了!

  • 没有连+ 比如 +=

  • for 的两种写法

--遍历tab获取键值对
--No.1 
for k, v in pairs(tab) do
	print(k .. " - " .. v)
end

--No.2
for i=1, 10 do
	print(a[i])
end
  • 对多变量赋值要进行依次赋值。

  • 特别注意,当索引是字符串类型的时候,才能去掉引号,直接用点。

a = {}
a["key"] = "key"

print(a["key"])
print(a.key)
  • string.char(arg) 和 string.byte(arg[,int])
  • char 将整型数字转成字符并连接
  • byte 转换字符为整数值(可以指定某个字符,默认第一个字符)。
print(string.char(97,98,99,100))
>abcd
print(string.byte("ABCD",2)) --B的ASCII是66
>66
print(string.byte("ABCD")) --A的ASCII是65
>65
  • 获取数据中某一位的方法data:byte(×)
data = "ABCD"
print(data:byte(4))

>68
    if  Mode:byte(1) == 48 then
        print("Wifi MODE: SOFTAP")
        wifi.setmode(wifi.SOFTAP)
    elseif  Mode:byte(1) == 49 then
            print("Wifi MODE: STATION")
            wifi.setmode(wifi.STATION)  
    else
        print("Wifi MODE: STATIONAP")
        wifi.setmode(wifi.STATIONAP)         
    end
  • uart.on (×) 表示串口接收数据监听函数,注意之间是点不要与前面的: 搞混淆了!

  • socket:close()中的close是一个函数,需要加括号的!

  • uart.write(0,data) 使用的时候,要特别声明是串口0!

  • LUA的条件分支

if(条件) then 
	.. 
end 
elseif(条件) then 
	.. 
end 
else
	.. 
end
  • UdpSocket:on("receive", function(socket, data, port, ip)此处的socket以及data参数在前面

  • UdpSocket:send(ConnectPort, ConnectIP, data) data参数在后面

  • string.len 获取字符串的长度

  • 这里写图片描述

  • string.sub 截取字符串的部分

  • 这里写图片描述