当前位置: 代码迷 >> 综合 >> 【Luat-air105】1.air105资料整理及点灯
  详细解决方案

【Luat-air105】1.air105资料整理及点灯

热度:53   发布时间:2023-12-05 20:30:17.0

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文件,也可以用链接上下载的。