IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> HTK-W801使用LuatOS编程---点灯 -> 正文阅读

[嵌入式]HTK-W801使用LuatOS编程---点灯

最近入手一个热门的平头哥W801-kit开发板, 是冲着上面自带的BLE和WIFI去的, 但是网上的资料奇少. 看了说明和W806 唯一的差别在于多了蓝牙和WIFI功能, 其他的都一样.

官方推荐的开发环境是C-Sky, 安装后居然要占用>3G的硬盘空间, 有些夸张啊, 为了一个小板子, 硬盘都显得紧张了!?

在网上查了一下, 有人正在把 Micropython 移植到这个板子上, 参考?

micropython/ports/xt804 at master · gengyong/micropython · GitHub

这个版本功能有限, 还是初级的.

另外还有人另起楼灶做的新的开发引擎, 参考

?pikascript: PikaScript是一个完全重写的超轻量级python引擎,零依赖,零配置,可以在少于4KB的RAM下运行(如stm32g030c8和stm32f103c8),极易部署和扩展另外icon-default.png?t=LA92https://gitee.com/Lyon1998/pikascript#%E4%BD%BF%E7%94%A8pika%E5%8C%85%E7%AE%A1%E7%90%86%E5%99%A8pikapackageexe???????这个相对于micropython 也算是一个异类.

另外还有人把LuatOS移植到 W801/806 上, 这也难怪, 因为 LuatOS Air301和他们用的是一样的芯片, 移植起来就很容易了. 参考

luatos-soc-air101: 合宙Air101/Air103固件源代码, 适用于Air101/Air103/w806/w800等基于xt804内核的芯片https://gitee.com/openLuat/luatos-soc-air101?_from=gitee_search这里作为一个示例, 点亮W801板载的7颗灯

-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "gpiodemo"
VERSION = "1.0.0"
log.info("main", PROJECT, VERSION)
-- sys库是标配
_G.sys = require("sys")

gpio.setup(0, function(val)
    log.info("PA0", val)
end, gpio.PULLUP)--按键按下接地,因此需要上拉

--下面的GPIO引脚编号,请根据实际需要进行更改!
local LED1 = gpio.setup(27, 0) -- PB11输出模式
local LED2 = gpio.setup(32, 0) -- PB16输出模式
local LED3 = gpio.setup(33, 0) -- PB17输出模式
local LED4 = gpio.setup(34, 0) -- PB18输出模式
local LED5 = gpio.setup(42, 0) -- PB26输出模式
local LED6 = gpio.setup(41, 0) -- PB25输出模式
local LED7 = gpio.setup(21, 0) -- PB5输出模式
sys.taskInit(function()
    while 1 do
        LED1(0)
        LED2(1)
        LED3(1)
        LED4(1)
        LED5(1)
        LED6(1)
        LED7(1)
        sys.wait(100)
        LED1(1)
        LED2(0)
        LED3(1)
        LED4(1)
        LED5(1)
        LED6(1)
        LED7(1)
        sys.wait(100)
        LED1(1)
        LED2(1)
        LED3(0)
        LED4(1)
        LED5(1)
        LED6(1)
        LED7(1)
        sys.wait(100)
        LED1(1)
        LED2(1)
        LED3(1)
        LED4(0)
        LED5(1)
        LED6(1)
        LED7(1)
        sys.wait(100)
        LED1(1)
        LED2(1)
        LED3(1)
        LED4(1)
        LED5(0)
        LED6(1)
        LED7(1)
        sys.wait(100)
        LED1(1)
        LED2(1)
        LED3(1)
        LED4(1)
        LED5(1)
        LED6(0)
        LED7(1)
        sys.wait(100)
        LED1(1)
        LED2(1)
        LED3(1)
        LED4(1)
        LED5(1)
        LED6(1)
        LED7(0)
        sys.wait(100)
        LED1(1)
        LED2(1)
        LED3(1)
        LED4(1)
        LED5(1)
        LED6(1)
        LED7(1)
        sys.wait(100)
    end
end)
-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!

使用官方的Luatools_v2烧录到W801后会循环点亮板载灯. 但是这个程序显得冗长乏味. 考虑到Lua的表和Python 的列表类似, 结合以前的经验, 用表的方式存储灯, 然后逐个点亮实现跑马灯的效果

-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "gpiodemo"
VERSION = "1.0.0"
log.info("main", PROJECT, VERSION)
-- sys库是标配
_G.sys = require("sys")

gpio.setup(0, function(val)
    log.info("PA0", val)
end, gpio.PULLUP)--按键按下接地,因此需要上拉

--下面的GPIO引脚编号,请根据实际需要进行更改!
local LED1 = gpio.setup(27, 0) -- PB11输出模式
local LED2 = gpio.setup(32, 0) -- PB16输出模式
local LED3 = gpio.setup(33, 0) -- PB17输出模式
local LED4 = gpio.setup(34, 0) -- PB18输出模式
local LED5 = gpio.setup(42, 0) -- PB26输出模式
local LED6 = gpio.setup(41, 0) -- PB25输出模式
local LED7 = gpio.setup(21, 0) -- PB5输出模式
local leds = {LED1,LED2,LED3,LED4,LED5,LED6,LED7}
sys.taskInit(function()
    while 1 do
        for i = 1, 7 do  --正向点灯
            leds[i](0)
            sys.wait(100)
            leds[i](1)
            sys.wait(100)
        end
        for i = 6, 2, -1 do  --逆向点灯
            leds[i](0)
            sys.wait(100)
            leds[i](1)
            sys.wait(100)
        end
    end
end)
-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-12-13 12:59:30  更:2021-12-13 12:59:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 1:52:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码