| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- --[[
- @module mcu_test
- @summary 测试mcu模块功能
- @version 1.0
- @date 2025.10.21
- @author 孟伟
- @usage
- 本demo演示的功能为:
- MCU死机时的处理模式设置
- 唯一ID获取与显示
- 系统tick计数功能测试
- 64位tick计数和差值计算
- 微秒、毫秒、秒级别的时间计数
- 16进制字符串转换输出
- 本文件没有对外接口,直接在main.lua中require "mcu_test"就可以加载运行;
- ]]
- function mcu_test()
- -- 测试MCU 死机时的处理模式
- -- 死机后重启,一般用于正式产品_
- mcu.hardfault(1)
- -- 测试唯一ID
- local unique_id = mcu.unique_id()
- if #unique_id > 0 then
- log.info("mcu", "Unique ID(hex):", unique_id:toHex())
- else
- log.warn("mcu", "Unique ID not supported")
- end
- -- 测试ticks相关函数
- -- 获取启动后的 tick 数
- log.info("mcu", "ticks:", mcu.ticks())
- -- 获取每秒的 tick 数量
- log.info("mcu", "获取每秒的tick数量:", mcu.hz())
- -- 测试64位tick
- local tick_str, tick_per = mcu.tick64()
- log.info("mcu", "tick64:", tick_str:toHex(), "ticks per us:", tick_per)
- -- 测试mcu.dtick64接口获取ticks差值计算
- local tick1 = mcu.tick64()
- sys.wait(100)
- local tick2 = mcu.tick64()
- local result, diff_tick = mcu.dtick64(tick1, tick2)
- log.info("mcu", "dtick64 result:", result, "diff:", diff_tick)
- -- 测试ticks2函数
- 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("mcu", "us:", us_h, us_l)
- log.info("mcu", "ms:", ms_h, ms_l)
- log.info("mcu", "sec:", sec_h, sec_l)
- -- 测试 转换 10 进制数为 16 进制字符串输出
- local value = mcu.x32(0x2009FFFC) --输出"0x2009fffc"
- log.info("mcu", "string", value)
- end
- sys.taskInit(mcu_test)
|