360度全景网站的公司,wordpress自定义栏目 插件,国内国际时事写实记录50字配图片,网站建设项目说明书今天我们学习的是Air780E定时器基础与进阶#xff0c;让大家更深入的了解定时器。 一、定时器(timer)的概述
在Air780E模组搭载的LuatOS系统中#xff0c;定时器#xff08;timer#xff09;是一项基础且关键的服务。它允许开发者在特定的时间点或周期性地执行代码段…今天我们学习的是Air780E定时器基础与进阶让大家更深入的了解定时器。 一、定时器(timer)的概述
在Air780E模组搭载的LuatOS系统中定时器timer是一项基础且关键的服务。它允许开发者在特定的时间点或周期性地执行代码段为物联网设备的运行提供了精确的时间控制。
定时器在多种应用场景中都发挥着重要作用如定时发送数据、周期性检查传感器状态等。 二、准备硬件环境
“古人云‘工欲善其事必先利其器。’在深入介绍本功能示例之前我们首先需要确保以下硬件环境的准备工作已经完成。”
2.1 Air780E 开发板
本demo使用的是 Air780E 核心板此核心板的详细使用说明参考 https://docs.openluat.com/air780e/product/Air780E 产品手册公用产品资料 - 模组资料中心 (openluat.com)中的 开发板 Core_Air780E 使用说明 VX.X.X.pdf写这篇文章时最新版本的使用说明为20240419155721583_开发板Core_Air780E使用说明V1.0.5.pdf (vue2.cn)核心板使用过程中遇到任何问题可以直接参考这份使用说明 pdf 文档。 2.2 SIM 卡
请准备一张可正常上网的SIM卡该卡可以是物联网卡或您的个人手机卡。
特别提醒 请确保SIM卡未欠费且网络功能正常以便顺利进行后续操作。
2.3 PC 电脑
请准备一台配备USB接口且能够正常上网的电脑。
2.4 数据通信线
请准备一根用于连接 Air780E 开发板和 PC 电脑的数据线该数据线将实现业务逻辑的控制与交互。您有两种选择 USB 数据线其一端为 Type-C 接口用于连接 Air780E 开发板。通常这种数据线的外观如下示意图所示 普通的手机USB数据线一般都可以直接使用。
2.5 组装硬件环境
2.5.1 请按照 SIM 卡槽上的指示方向正确插入 SIM 卡务必确保插入方向正确避免插反导致损坏
通常插入 SIM 卡的步骤如下 将 SIM 卡的金属接触面朝下对准卡槽的开口。 用力平稳地将 SIM 卡推入卡槽直至听到“咔嚓”一声表示 SIM 卡已正确安装到位。 2.5.2 USB 数据线连接电脑和 Air780E 开发板如下图所示 三、准备软件环境
“凡事预则立不预则废。”在详细阐述本功能示例之前我们需先精心筹备好以下软件环境。
3.1 Luatools 工具
要想烧录 AT 固件到 4G 模组中需要用到的调试工具Luatools
下载地址 https://docs.openluat.com/Luatools/
Luatools 工具集具备以下几大核心功能 一键获取最新固件自动连接服务器轻松下载最新的模组固件。 固件与脚本烧录便捷地将固件及脚本文件烧录至目标模组中。 串口日志管理实时查看模组通过串口输出的日志信息并支持保存功能。 串口调试助手提供简洁的串口调试界面满足基本的串口通信测试需求。
Luatools 下载之后 无需安装 解压到你的硬盘点击 Luatools_v3.exe 运行出现如下界面就代表 Luatools 安装成功了 3.2 烧录代码
首先要说明一点脚本代码 要和固件的 LuatOS-SoC_V1112_EC618_FULL.soc 文件一起烧录。
整体压缩文件内含有 文件一Core 固件 和 文件二定时器(timer)脚本文件 如下图所示。 3.2.1 压缩文件完整文件包
下载地址 https://docs.openluat.com/air780e/luatos/app/service/timer/
3.2.2 压缩包内部文件
文件一Core 固件
文件二定时器(timer)脚本文件
3.2.3 找到烧录的固件文件
官网下载,底层 core 下载地址SDKDemo - 文档中心 (openluat.com)LuatOS 底层 core 注本 demo 使用如图所示固件 3.2.4 正确连接电脑和4G模组电路板
使用带有数据通信功能的数据线不要使用仅有充电功能的数据线
3.2.5 识别4G模组的boot引脚
在下载之前要用模组的boot引脚触发下载也就是说要把4G模组的boot引脚拉到1.8v或者直接把boot引脚和VDD_EXT引脚相连。我们要在按下BOOT按键时让模块开机就可以进入下载模式了。
具体到Air780E开发板
1、当我们模块没开机时按着BOOT键然后长按PWR开机。
2、当我们模块开机时按着BOOT键然后点按重启键即可。 3.2.6 识别电脑的正确端口
判断是否进入 BOOT 模式模块上电此时在电脑的设备管理器中查看串口设备 会出现一个端口表示进入了 boot 下载模式如下图所示 当设备管理器出现了 3 个连续数字的 com 端口并且每个数字都大于 4这时候 硬件连接上就绪状态恭喜你可以进行烧录了
3.2.7 新建项目
首先确保你的 Luatools 的版本大于或者等于 3.0.6 版本.
在 Luatools 的左上角上有版本显示的如图所示 Luatools 版本没问题的话 就点击 Luatools 右上角的“项目管理测试”按钮如下图所示 这时会弹出项目管理和烧录管理的对话框如下图 3.2.8 开始烧录
选择780E板子对应的底层core和刚改的main.lua脚本文件。下载到板子中。 点击下载后我们需要进入 boot 模式才能正常下载。 四、定时器(timer)基本用法
4.1 本教程实现的功能定义 此次 demo 验证单次触发定时器和周期性触发定时器的基本功能。 尝试展示了如何通过定时器回调函数执行特定任务。 验证定时 sys.timerStopAll 和 sys.timerStop 的用法。
4.2 文章内容引用 780E 开发板软硬件资料 Air780E 产品手册公用产品资料 https://docs.openluat.com/air780e/luatos/app/service/timer/ 以上接口函数不做详细介绍可通过此链接查看具体介绍sys 库sys - sys库 - LuatOS 文档
4.3 sys.timerStart
功能启动一个定时器该定时器在指定的延迟时间后执行回调函数或者如果指定了重复次数则周期性地执行回调函数。
函数原型local timerId sys.timerStart(func, timeout, repeat, arg1, arg2, ..., argN)
参数 func定时器触发时要执行的回调函数。 timeout定时器启动后的延迟时间以毫秒为单位即定时器触发前需要等待的时间。 repeat可选指定定时器是否重复触发。如果为 0则定时器只触发一次如果为正整数则定时器会重复触发指定的次数如果为负整数如-1则定时器可能表示无限重复具体取决于 LuatOS 的实现但通常-1 用于无限循环。 arg1, arg2, ..., argN可选传递给回调函数的参数可以是多个。
例子 4.4 sys.timerStop
功能停止一个已启动的定时器。
函数原型sys.timerStop(timerId)
参数timerId要停止的定时器的唯一标识符。
例子 4.5 sys.timerLoopStart
功能启动一个周期性定时器该定时器会按照指定的时间间隔反复执行回调函数。。
函数原型local timerId sys.timerLoopStart(func, timeout, arg1, arg2, ..., argN)
参数 func定时器触发时要执行的回调函数。 timeout定时器的时间间隔以毫秒为单位即每次触发之间的等待时间。 arg1, arg2, ..., argN传递给回调函数的参数可选可以是多个。
返回值返回定时器的唯一标识符 timerId该标识符可用于后续停止定时器。
例子 4.6 sys.timerStopAll
功能停止所有由指定回调函数启动的定时器或者如果没有提供回调函数参数则停止所有定时器。
函数原型sys.timerStopAll([fnc])
参数fnc可选一个回调函数。如果提供了这个参数那么只有由这个回调函数启动的定时器会被停止。如果没有提供这个参数那么所有的定时器都会被停止。
返回值无。
例子 五、定时器(timer)整体演示
5.1 成果演示与深度解析视频 图文全面展示
5.1.1 成果运行精彩呈现 5.1.2 演示视频生动展示
时长00:18 5.1.3 完整实例深度剖析 六、常见问题
6.1 回调函数执行异常 如果定时器的回调函数中存在异常处理不当的情况可能会导致程序崩溃或产生不可预知的行为。 需要在回调函数中做好异常处理确保程序的健壮性。
6.2 定时器冲突 在多个定时器同时存在的情况下可能会存在定时器冲突的问题即多个定时器同时触发或相互干扰。 需要合理设计定时器的触发时间和周期避免冲突的发生。
6.3 资源占用问题 定时器的创建、启动和停止等操作可能会占用一定的系统资源如内存、CPU 等。 在资源受限的嵌入式系统中需要合理管理定时器的使用避免资源过度占用。
6.4 定时器 ID 管理 在使用定时器接口函数时通常会返回一个定时器 ID 用于后续操作。如果定时器 ID 管理不当可能会导致无法正确停止或删除定时器。 需要建立良好的定时器 ID 管理机制确保定时器的正确操作。
6.5 定时器重复启动问题 在某些情况下可能会不小心重复启动同一个定时器导致多个相同的定时器同时存在。 这可能会导致资源浪费或任务重复执行。需要确保定时器的唯一性和正确性。 七、扩展
7.1 定时器的嵌套与递归 嵌套定时器在某些情况下一个定时器的回调函数可能会启动另一个定时器。这种嵌套定时器的使用需要特别小心以避免无限递归或资源耗尽。 递归定时器递归定时器是指一个定时器在其回调函数中重新启动自己。这种用法需要特别注意避免无限循环和堆栈溢出。
7.2 定时器的动态调整 周期调整在某些应用中可能需要动态调整定时器的周期。这通常涉及停止当前定时器并重新启动一个新周期的定时器。 任务优先级调整对于某些实时性要求较高的任务可能需要动态调整定时器的优先级以确保任务能够及时执行。 分享完毕