菜单

ApusTAI 掉电保存:LW/RW 完整案例

下载

这个案例把可输入的运行参数保存在 RW 掉电保持区,并在启动时恢复到 LW 工作地址。适用于少量、低频变化的设置值;存储介质和写入寿命应按目标屏型号核对。可下载 新版掉电保存演示工程,其中已经包含下述控件和脚本;重启恢复尚未稳定通过,需在目标硬件复测。

案例:保存一个 0~9999 的运行参数

  1. 新建 E043C4827 工程,在首页加入“数值输入”控件,旁边标出参数名称。
  2. 按下图配置属性:①启用输入;②键盘画面为默认数字键盘页 100;③读取地址为 LW1000,写入地址保持“与读取地址相同”;④数据类型选 UINT16。本例约定只输入 0~9999。
  3. 打开工程脚本 main.lua,加入下方代码。保存后在 IDE 中检查脚本、编译工程,再运行模拟器检查输入和显示。
    ApusTAI 历史版本截图 掉电保存示例首页,画布紧裁
    数值输入属性紧裁图,1 启用输入、2 键盘页、3 读取地址、4 数据类型
    示例使用 LW1000 作为运行时工作值、RW1000 作为保存值。on_init 读取保存值并恢复到工作地址;on_run 仅在有效值变化时写 RW,避免每个周期重复写入。空白或越界保存值按 0 处理。
lua 复制代码
local setting_addr = 0x1000
local saved_addr = 0x1000
local max_setting = 9999
function on_init()    
local saved = get_uint16(VT_RW, saved_addr)    
if saved > max_setting then        
saved = 0    
end    
set_uint16(VT_LW, setting_addr, saved)
end
function on_run(screen)    
local current = get_uint16(VT_LW, setting_addr)    
local saved = get_uint16(VT_RW, saved_addr)    
if current <= max_setting and current ~= saved then        
set_uint16(VT_RW, saved_addr, current)    
end
end

核对顺序

  1. 在模拟器用数字键盘把参数改为 42,确认当前页面显示 42。IDE 编辑画布中的“8888”只是设计时预览值。
  2. 在目标实体屏上修改参数,等待写入完成后断电、重新上电,确认页面恢复相同的值。再用空白 RW 区和边界值复测。
  3. 如果重启后未恢复,先确认控件写入地址、脚本是否随工程编译并下载、目标型号的 RW 保持范围,以及模拟器与实体屏的存储行为。
    本案例曾在历史版 ApusTAI 中完成控件属性回读、脚本语法检查和工程构建;模拟器里可以输入 42,但重启后未能可靠恢复。因此这里不把模拟器结果当作掉电保持已验证,实际断电恢复必须在目标硬件上测定。若工程已启用增强分期,RW0300~RW047F 由分期运行时占用,请避免复用;本例使用 RW1000。
上一个
第八章 ApusTAI 常见问题
下一个
ApusTAI 1.0.38 资源与工具
最近修改: 2026-10-22Powered by