最近入手一个热门的平头哥W801-kit开发板, 是冲着上面自带的BLE和WIFI去的, 但是网上的资料奇少. 看了说明和W806 唯一的差别在于多了蓝牙和WIFI功能, 其他的都一样.
官方推荐的开发环境是C-Sky, 安装后居然要占用>3G的硬盘空间, 有些夸张啊, 为了一个小板子, 硬盘都显得紧张了!
在网上查了一下, 有人正在把 Micropython 移植到这个板子上, 参考
micropython/ports/xt804 at master · gengyong/micropython · GitHub
这个版本功能有限, 还是初级的.
作者给出的示例程序
import machine
# PB0 脚, 输出, 默认高电平
pb0 = machine.Pin('B0', machine.Pin.OUT, value=1)
# 输出低电平
pb0.off()
# PA0 脚, 输入
pa0 = machine.Pin('A0', machine.Pin.IN)
# 读取
pa0.value()
根据这个例子可以编写W801上的跑马灯程序
import machine
import time
# PB0 脚, 输出, 默认高电平
pb5 = machine.Pin('B5', machine.Pin.OUT, value=1)
pb25 = machine.Pin('B25', machine.Pin.OUT, value=1)
pb26 = machine.Pin('B26', machine.Pin.OUT, value=1)
pb18 = machine.Pin('B18', machine.Pin.OUT, value=1)
pb17 = machine.Pin('B17', machine.Pin.OUT, value=1)
pb16 = machine.Pin('B16', machine.Pin.OUT, value=1)
pb11 = machine.Pin('B11', machine.Pin.OUT, value=1)
while True:
# 输出低电平
pb5.off()
time.sleep(0.1)
pb5.on()
time.sleep(0.1)
另外还有人另起楼灶做的新的开发引擎, 参考
pikascript: PikaScript是一个完全重写的超轻量级python引擎,零依赖,零配置,可以在少于4KB的RAM下运行(如stm32g030c8和stm32f103c8),极易部署和扩展另外https://gitee.com/Lyon1998/pikascript这个相对于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()之后后面不要加任何语句!!!!!
版权声明:本文为CSDN博主「leotzf」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45616112/article/details/121891478
暂无评论