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) --死机后尽量将错误信息提交给外部工具后重启,一般用于压力测试或者正式产品