提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
官网固件处讲解
现在已经不推本地的tools进行esp32c3的烧录; 时间(2024.8.21)
这上面说推荐直接云客户端
直接看官网云客户端配置
提示:以下是本篇文章正文内容,下面案例可供参考
一、介绍
其他介绍看这个
二、相关介绍
上面云端的那个地方就是进行一些固件,不是正在的代码编写。
他没有专有的ide要在vscode里面编写。环境搭建
烧录教程此时resource里面是没有esp32的需要使用上面的云端那个配置soc固件烧到板子里面
此时两个gpio灯微微亮。
2.1helloworld——
这时候我们用vscode编写代码
PROJECT = "hello_world"
VERSION = "0.0.1"
sys = require"sys"
--代码区start
local LEDA= gpio.setup(12, 0, gpio.PULLUP)
local LEDB= gpio.setup(13, 0, gpio.PULLUP)
print("hello world")
-- LEDA(0)
--代码区end
sys.run()
2.2任务框架
然后将脚本烧录了。
使用任务的方式进行闪烁
有需要任务框架教程
对于gpio的操作
PROJECT = "hello_world"
VERSION = "0.0.1"
sys = require("sys")
--代码区start
local LEDA= gpio.setup(12, 0, gpio.PULLUP)
local LEDB= gpio.setup(13, 0, gpio.PULLUP)
sys = require("sys")
--第一个任务
sys.taskInit(function()
while true do
log.info("task1","-----")
print("system start")
sys.wait(500) --延时500m秒,这段时间里可以运行其他代码
end
end)
--第二个任务
sys.taskInit(function()
while true do
log.info("task2","------")
LEDA(1)
LEDB(1)
sys.wait(500) --延时0.5秒,这段时间里可以运行其他代码
LEDA(0)
LEDB(0)
sys.wait(500) --延时0.5秒,这段时间里可以运行其他代码
end
end)
print("system start\n")
-- LEDA(0)
--代码区end
sys.run()
即可完成打印和闪烁
对于这个函数的定义以及任务的定义 ,也可以采用这种方式
PROJECT = "hello_world"
VERSION = "0.0.1"
sys = require("sys")
--代码区start
local LEDA= gpio.setup(12, 0, gpio.PULLUP)
local LEDB= gpio.setup(13, 0, gpio.PULLUP)
sys = require("sys")
--第一个任务
function task1()
while true do
log.info("task1","-----")
print("system start")
sys.wait(500) --延时500m秒,这段时间里可以运行其他代码
end
end
--第二个任务
sys.taskInit(function()
while true do
log.info("task2","------")
LEDA(1)
LEDB(1)
sys.wait(500) --延时0.5秒,这段时间里可以运行其他代码
LEDA(0)
LEDB(0)
sys.wait(500) --延时0.5秒,这段时间里可以运行其他代码
end
end)
sys.taskInit(task1)
print("system start\n")
-- LEDA(0)
--代码区end
sys.run()
2.3消息传递 与消息订阅
消息传递
sys.publish
sys.waitUntil
订阅消息
sys.subcribe
sys.unsubcribe
2.4uart
local LEDA= gpio.setup(12, 0, gpio.PULLUP)
local LEDB= gpio.setup(13, 0, gpio.PULLUP)
local uartid = 1
--初始化
uart.setup(
uartid,--串口id
115200,--波特率
8,--数据位
1--停止位
)
-- 收取数据会触发回调, 这里的"receive" 是固定值
uart.on(uartid, "receive", function(id, len)
local s = uart.read(id, len)
if #s > 0 then -- #s 是取字符串的长度
if s == "on" then
LEDA(1)
elseif s == "off" then
LEDA(