0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MCU软件核心库及示例代码速览 !

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2025-12-11 17:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

为加速嵌入式项目开发,本文对MCU软件核心库进行整体速览,涵盖初始化、外设控制与中断处理等关键部分,并结合简洁示例代码,帮助开发者快速理解与应用库功能。

一、MCU核心库函数功能

MCU核心库是LuatOS中封装MCU一些特殊操作的核心模块,提供了对MCU底层功能的访问和控制能力,是开发高级功能和系统调试的重要工具。

相关函数及其主要功能如下:

mcu.unique_id()

获取设备唯一ID,基于模块硬件ID生成的唯一标识符。

mcu.ticks()

获取启动后的tick数。主要应用于超时检测、状态机计时、按键消抖等场景。

mcu.hz()

获取每秒的tick数量。通常为1000(每秒1000 个tick);但是也有例外,需要根据这个函数的返回值准确获取。

mcu.x32(value)

用于转换10进制数为16进制字符串输出。

mcu.tick64(is_bit64)

获取启动后的高精度tick。接口主要用于需要高精度时间测量和长时间运行计时的场景。

mcu.dtick64(tick1, tick2, check_value)

计算2个64bit tick的差值。

mcu.hardfault(mode)

配置MCU死机时的处理模式。

mcu.ticks2(mode)

获取高精度的计数。与mcu.ticks()的区别是,底层计数器是64bit的,在可预计的将来不会溢出。

其中,mcu.ticks()、mcu.tick64() 和mcu.ticks2() 的区别如下表所示:

wKgZPGk6hAuAe67yAAIYfQxcOks318.png

二、MCU核心库应用示例

本文以Air780EPM核心板为例,演示如何使用LuatOS的MCU核心库进行芯片级功能测试,包括时钟频率获取、唯一ID读取、高精度计时、IO复用配置等核心功能,帮助开发者快速上手。

实际应用中,可结合具体业务需求灵活调整。


Air780EPM应用示例持续更新中,最新资料详见下方链接。

最新示例源码:
https://gitee.com/openLuat/LuatOS/tree/master/module/Air780EPM/demo/mcu

实操教程详见
https://docs.openluat.com/air780epm/luatos/app/common/mcu/

2.1 代码要点解析

使用Air780EPM核心板测试MCU相关功能,包括:

MCU死机时的处理模式设置

唯一ID获取与显示

系统tick计数功能测试

64位tick计数和差值计算

微秒、毫秒、秒级别的时间计数

16进制字符串转换输出


mcu_test.lua示例代码如下,完整demo详见源码仓库最新文件。

wKgZPGk6h7uAUqZcAAKEmdyxS_c692.pngwKgZO2k6h9CAJYYCAAE4pcWfQWA255.png

2.2 示例运行结果

Air780EPM核心板通过LuaTools烧录内核固件和demo脚本代码,烧录成功后开机运行,即可查看日志。

wKgZPGk6iBCAG9QTAALs3FWcTkU577.png

今天的内容就分享到这里了~


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    19135

    浏览量

    404087
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    EtherCAT应用示例,GOAL 应用说明

    了所有应用示例,这些示例位于应用/goal_ecat/.相关项目放在项目/goal_ecat*挨着edt EtherCAT 软件(如 TwinCAT 或以太网 Codesys Master PLC)用于
    发表于 04-23 08:19

    新品|乐鑫ESP32-H21重磅登场!

    乐鑫科技(Espressif)再次推出重磅新品——ESP32-H21。作为乐鑫科技一级代理商,启明云端当然要第一时间为大家带来这款MCU系统级芯片(SoC)的解读!本期启明云端带你
    的头像 发表于 04-14 18:03 529次阅读
    新品<b class='flag-5'>速</b><b class='flag-5'>览</b>|乐鑫ESP32-H21重磅登场!

    CW32系列MCU在Eclipse GCC + JLink下的使用示例分享

    CW32系列MCU在Eclipse GCC + JLink下的使用示例: 1、下载安装Eclipse IDE for Embedded C/C++ Developers。 2、下载安装
    发表于 02-02 06:57

    如何正确配置AG32 MCU,实现FLASH或者代码加密?

    一、AG32MCU的特点 海振远科技AG32 MCU核心特点在于其异构双核架构(RISC-V+CPLD)和超高灵活性,这使其在性能和成本上优势显著。 1、核心特点: 1)异构双核架构
    发表于 01-22 15:01

    AirCloud平台+excloud扩展核心功能实战应用!

    AirCloud平台的配置灵活性与excloud扩展的功能扩展性,通过实战应用得以充分体现。下面整理核心功能实战示例集,覆盖常见业务需求场景:如通过平台配置快速搭建高可用架构,借助excloud
    的头像 发表于 12-24 17:17 751次阅读
    AirCloud平台+excloud扩展<b class='flag-5'>库</b>:<b class='flag-5'>核心</b>功能实战应用!

    基于芯源CW32 MCU的LED闪烁示例代码分析

    最近我在项目中使用了芯源的CW32 MCU,这是一款非常适合物联网和低功耗应用的微控制器。在初步学习和使用中,我做了一个简单的LED闪烁实验,通过这篇帖子给大家分享一下代码及相关的配置步骤。 硬件
    发表于 12-04 06:52

    在CW32F030 MCU上设置外部中断和RTC唤醒条件的示例

    ) // ... // 注意:代码执行到这里后,MCU将进入DeepSleep模式,直到被RTC闹钟中断唤醒 } int main(void) { HAL_Init();// 初始化HAL
    发表于 11-25 08:00

    极简XXTEA加密解密:5分钟代码学!

    XXTEA加密解密的极简实现方法来了!只需5分钟,跟着本文的代码示例学习,你就能快速掌握加密与解密的核心技巧,轻松应用到项目中。 XXTEA (eXtended eXtended Tiny
    的头像 发表于 11-12 14:49 479次阅读
    极简XXTEA加密解密:5分钟<b class='flag-5'>代码</b><b class='flag-5'>速</b>学!

    LuatOS MCU核心全接触:新手操作与功能测试攻略!

     MCU芯片级开发新手如何快速掌握核心技能?本文围绕LuatOS的MCU核心,系统演示时钟频率获取、唯一ID读取、高精度计时、IO复用配置
    的头像 发表于 11-12 14:30 394次阅读
    LuatOS <b class='flag-5'>MCU</b><b class='flag-5'>核心</b><b class='flag-5'>库</b>全接触:新手操作与功能测试攻略!

    新手必备:LuatOS MCU核心功能测试与实践指南

    新手如何快速掌握MCU芯片级开发?本文通过LuatOS的MCU核心,全面演示时钟频率获取、唯一ID读取、高精度计时、IO复用配置等核心功能
    的头像 发表于 11-12 14:26 468次阅读
    新手必备:LuatOS <b class='flag-5'>MCU</b><b class='flag-5'>核心</b><b class='flag-5'>库</b>功能测试与实践指南

    划重点!一图浦江开源鸿蒙生态大会金句

    划重点!一图浦江开源鸿蒙生态大会金句
    的头像 发表于 10-16 17:29 1021次阅读
    划重点!一图<b class='flag-5'>速</b><b class='flag-5'>览</b>浦江开源鸿蒙生态大会金句

    HTTP开发必备:核心与httpplus扩展应用示例全攻略

    HTTP开发的必备参考!本文汇总核心基础操作与httpplus扩展高级特性,通过示例解析,让你快速上手各类HTTP开发需求。
    的头像 发表于 09-20 15:19 3327次阅读
    HTTP开发必备:<b class='flag-5'>核心</b><b class='flag-5'>库</b>与httpplus扩展<b class='flag-5'>库</b>应用<b class='flag-5'>示例</b>全攻略

    请问如何构建 emWin 示例代码

    如何构建 emWin 示例代码
    发表于 09-04 07:25

    AT32 MCU如何使用IAP

    ,下面将详细介绍其步骤和技术要点: 准备工程和源码 获取软件和源码 :首先需要从BSP固件的utilities文件夹中获取支持IAP的上位机软件示例
    发表于 08-08 17:13

    CW32L010 MCU在VSCode+GCC+EIDE+JLink下的使用示例

    CW32L010 MCU 在VSCode+GCC+ EIDE + JLink 下的使用示例: 1、点击VSCode左边栏中的Extensions,在EXTENSIONS:MARKETPLACE搜索
    的头像 发表于 07-01 14:52 1242次阅读
    CW32L010 <b class='flag-5'>MCU</b>在VSCode+GCC+EIDE+JLink下的使用<b class='flag-5'>示例</b>