1 前言
入手一块air105,它的spi较多,尝试点灯
2 官方链接
105发布:http://www.elecfans.com/d/comp-4699659-136340651553233530880.html
105源码:https://gitee.com/openLuat/luatos-soc-air105
105编译说明:https://wiki.luatos.com/develop/compile/Air105.html
105寄存器手册:https://luatos.com/t/air105
LuatOS-SoC@Air105 V0003 正式固件地址:
https://gitee.com/openLuat/LuatOS/releases/v0007.air105.v0003
3 前期准备
3.1 克隆105源码
git clone https://gitee.com/openLuat/luatos-soc-air105.git
3.2 下载固件
下载soc:https://gitee.com/openLuat/LuatOS/releases/v0007.air105.v0003
这里提供了soc以及camera试用的demo
3.3 熟悉一下pin
红色框住的部分就是camera的连接器
3.4 找demo
https://gitee.com/openLuat/LuatOS/tree/master/demo/
目前已经整合了luatos的demo,所以在这里找到对应的105目录就行,当然有的可能没有105目录,那就查看下注释,如果有介绍就用介绍,没有就自己对照电路图分析。
4 点灯——led demo
--https://gitee.com/openLuat/LuatOS/blob/master/demo/gpio/main.lua
-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "gpiodemo"
VERSION = "1.0.0"log.info("main", PROJECT, VERSION)-- sys库是标配
_G.sys = require("sys")if wdt then--添加硬狗防止程序卡死,在支持的设备上启用这个功能wdt.init(15000)--初始化watchdog设置为15ssys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
end--下面的GPIO引脚编号,请根据实际需要进行更改!
-- Air101开发板的3个LED分别为 PB08/PB09/PB10
-- Air103开发板的3个LED分别为 PB24/PB25/PB26-- 若下载到设备后提示pin库不存在,请升级固件到V0006或以上
local LEDA = gpio.setup(pin.PB08, 0, gpio.PULLUP) -- PB8输出模式,内部上拉
local LEDB = gpio.setup(pin.PB09, 0, gpio.PULLUP) -- PB9输出模式,内部上拉
local LEDC = gpio.setup(pin.PB10, 0, gpio.PULLUP) -- PB10输出模式,内部上拉sys.taskInit(function()local count = 0while 1 dosys.wait(500)-- 一闪一闪亮晶晶LEDA(count & 0x01 == 0x01 and 1 or 0)LEDB(count & 0x02 == 0x02 and 1 or 0)LEDC(count & 0x03 == 0x03 and 1 or 0)log.info("gpio", "Go Go Go", count, rtos.bsp())count = count + 1end
end)-- API文档 https://wiki.luatos.com/api/gpio.html-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!
对照一下电路图:
对照着修改代码
-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "gpiodemo"
VERSION = "1.0.0"log.info("main", PROJECT, VERSION)-- sys库是标配
_G.sys = require("sys")if wdt then--添加硬狗防止程序卡死,在支持的设备上启用这个功能wdt.init(15000)--初始化watchdog设置为15ssys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
end--下面的GPIO引脚编号,请根据实际需要进行更改!
-- Air101开发板的3个LED分别为 PB08/PB09/PB10
-- Air103开发板的3个LED分别为 PB24/PB25/PB26-- 若下载到设备后提示pin库不存在,请升级固件到V0006或以上
local LEDA = gpio.setup(pin.PD14, 0, gpio.PULLUP) -- PB8输出模式,内部上拉
local LEDB = gpio.setup(pin.PD15, 0, gpio.PULLUP) -- PB9输出模式,内部上拉
local LEDC = gpio.setup(pin.PC03, 0, gpio.PULLUP) -- PB10输出模式,内部上拉sys.taskInit(function()local count = 0while 1 dosys.wait(500)-- 一闪一闪亮晶晶LEDA(count & 0x01 == 0x01 and 1 or 0)LEDB(count & 0x02 == 0x02 and 1 or 0)LEDC(count & 0x03 == 0x03 and 1 or 0)log.info("gpio", "Go Go Go", count, rtos.bsp())count = count + 1end
end)-- API文档 https://wiki.luatos.com/api/gpio.html-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!
5 烧录
注意烧录前请设置波特率为1500000
https://wiki.luatos.com/chips/air105/board.html
esp32c3是115200,使用的时候注意切换
注意第一次刷机的时候要刷固件,否则会报错
下载
luatools中的resource中也包含soc文件,也可以用链接上下载的。