air103#

本章介绍LuatOS的mcu库使用方式

简介#

mcu库封装了一些对应mcu的特殊操作

硬件准备#

Air103开发板

软件部分#

接口文档可参考:mcu库

设置主频并查询设置的主频#

air103可以设置的主频有以下几种,通常来说,主频越低,功耗越低

  • 2MHz

  • 40MHz

  • 80MHz

  • 160MHz

  • 240MHz

代码如下

PROJECT = "mcu"
VERSION = "1.0.0"
sys = require("sys")
function test()
    -- 设置为2MHz的时钟频率时,日志端口需要设置波特率为115200
    uart.setup(0, 115200)
    log.info(PROJECT .. ".setClk", mcu.setClk(2))
    log.info(PROJECT .. ".getClk", mcu.getClk())
    log.info(PROJECT .. ".setClk", mcu.setClk(40))
    log.info(PROJECT .. ".getClk", mcu.getClk())
    log.info(PROJECT .. ".setClk", mcu.setClk(80))
    log.info(PROJECT .. ".getClk", mcu.getClk())
    log.info(PROJECT .. ".setClk", mcu.setClk(160))
    log.info(PROJECT .. ".getClk", mcu.getClk())
    log.info(PROJECT .. ".setClk", mcu.setClk(240))
    log.info(PROJECT .. ".getClk", mcu.getClk())
end
sys.taskInit(test)
sys.run()

日志如下

I/user.mcu.setClk true
I/user.mcu.getClk 2
I/user.mcu.setClk true
I/user.mcu.getClk 40
I/user.mcu.setClk true
I/user.mcu.getClk 80
I/user.mcu.setClk true
I/user.mcu.getClk 160
I/user.mcu.setClk true
I/user.mcu.getClk 240

获取设备唯一id#

代码如下

PROJECT = "mcu"
VERSION = "1.0.0"
sys = require("sys")
function test()
    log.info(PROJECT .. ".unique_id", mcu.unique_id():toHex())
end
sys.taskInit(test)
sys.run()

日志如下

I/user.mcu.unique_id 6808454646333A0CBB8E 20

获取启动后的tick数和每秒的tick数量#

代码如下

PROJECT = "mcu"
VERSION = "1.0.0"
sys = require("sys")
function test()
    log.info(PROJECT .. ".ticks1", mcu.ticks())
    log.info(PROJECT .. ".hz", mcu.hz())
    sys.wait(5000)
    log.info(PROJECT .. ".ticks2", mcu.ticks())
end
sys.taskInit(test)
sys.run()

日志如下

I/user.mcu.ticks1 35
-- 1S 1000个tick
I/user.mcu.hz 1000
-- 延时5S后再查询tick比第一次查询多了5000个tick
I/user.mcu.ticks2 5037

转换10进制数为16进制字符串输出#

代码如下

PROJECT = "mcu"
VERSION = "1.0.0"
sys = require("sys")
function test()
    -- 最大转换4个字节的数字
    log.info(PROJECT .. ".x32", mcu.x32(305419896)) -- 0x12345678
end
sys.taskInit(test)
sys.run()

日志如下

I/user.mcu.x32 0x12345678