跳转至

mcu - 封装mcu一些特殊操作

mcu.unique_id()

获取设备唯一id. 注意,可能包含不可见字符,如需查看建议toHex()后打印

参数

返回值

返回值类型 解释
string 设备唯一id.若不支持, 会返回空字符串.

例子

local unique_id = mcu.unique_id()
print("unique_id", unique_id)

mcu.ticks()

获取启动后的tick数,本身是无符号值,范围0~0xffffffff,lua是有符号计算,计算时超过0x7fffffff会变负数

参数

返回值

返回值类型 解释
int 当前tick值

例子

local tick = mcu.ticks()
print("ticks", tick)
-- 如需不会溢出的值, 可用mcu.ticks32(), 于2024.5.7新增

mcu.ticks2(mode)

获取高精度的计数

参数

传入值类型 解释
int 模式, 看后面的用法说明

返回值

返回值类型 解释
int 根据mode的不同,返回值的含义不同

例子

-- 本函数于2024.5.7新增
-- 与mcu.ticks()的区别是,底层计数器是64bit的, 在可预计的将来不会溢出
-- 所以本函数返回的值总是递增的, 而且32bit固件也能处理

-- 模式可选值 及 对应的返回值
-- 0: 返回微秒数, 以秒为分割, 例如 1234567890us 返回2个值: 1234, 567890
-- 1: 返回毫秒数, 以千秒为分割, 例如 1234567890ms 返回2个值: 1234, 567890
-- 2: 返回秒数,   以百万秒为分割, 例如 1234567890s  返回2个值: 1234, 567890

local us_h, us_l = mcu.ticks2(0)
local ms_h, ms_l = mcu.ticks2(1)
local sec_h, sec_l = mcu.ticks2(2)
log.info("us_h", us_h, "us_l", us_l)
log.info("ms_h", ms_h, "ms_l", ms_l)
log.info("sec_h", sec_h, "sec_l", sec_l)

mcu.hardfault(mode)

mcu死机时处理模式,目前只有EC618平台适用

参数

传入值类型 解释
int 处理模式,0死机停机,1死机后重启,2死机后尽量将错误信息提交给外部工具后重启 3.死机时写入关键信息到flash后立刻重启

返回值

例子

mcu.hardfault(0)    --死机后停机,一般用于调试状态
mcu.hardfault(1)    --死机后重启,一般用于正式产品
mcu.hardfault(2)    --死机后尽量将错误信息提交给外部工具后重启,一般用于压力测试或者正式产品