OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 59|回复: 2

HMI上位机如何持久化数据?怎么使用脚本语言取操作SD卡?

[复制链接]

2

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2025-6-3
在线时间
8 小时
发表于 2025-7-8 16:15:25 | 显示全部楼层 |阅读模式
本帖最后由 wanglinlin 于 2025-7-9 16:07 编辑

我在HMI上位机上做了一个登录界面和修改密码界面,用的密码是全局变量的。但是我发现一旦重新上电,修改后的密码就失效了。如何使密码能够持久化呢?
问了一下AI, 说要实现密码持久化,需要将数据存储在非易失性存储器中(如 Flash、SD 卡等)。
要怎么使用脚本来操作SD卡呢?官方有没有说明? 1752046037041.jpg

修改密码界面

修改密码界面





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

3408

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8716
金钱
8716
注册时间
2020-5-11
在线时间
4231 小时
发表于 2025-7-9 13:06:10 | 显示全部楼层
咋做的?开发环境?运行环境?
专治疑难杂症
回复 支持 反对

使用道具 举报

2

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2025-6-3
在线时间
8 小时
 楼主| 发表于 2025-7-9 16:05:03 | 显示全部楼层
本帖最后由 wanglinlin 于 2025-7-9 16:10 编辑
LcwSwust 发表于 2025-7-9 13:06
咋做的?开发环境?运行环境?

开发环境是HMI上位机。运行环境是硬件屏。
具体实现方法是做了一个登录界面,并设置了一个全局变量pwd。点击登录按钮,弹起事件为:
  1. if(username.txt.str=="admin" && password.txt.str==pwd.str){
  2.     tip.txt.color = 40395;
  3.     tip.txt.str = "登录成功,即将跳转到配置页面!"; //绿色提示
  4.     page(config);
  5. }
  6. else {
  7.     tip.txt.color = 63488;
  8.     tip.txt.str = "密码错误,登录失败!"; //红色提示
  9. }
复制代码


点击修改密码调转到修改密码页面,输入新的密码之后,点击确定按钮,让pwd赋值新的密码。确定的弹起事件为
  1. login.pwd.str = password.txt.str;
  2. //prints("新密码为:%s",login.pwd.str);
  3. tip.txt.color = 40395;
  4. tip.txt.str = "密码修改成功";
  5. page(login);
复制代码


然后将上位机程序通过编译-下载传到硬件屏上。当硬件屏完成程序更新时,是可以修改新密码并以新密码登陆的。当我将硬件屏断电之后重新上电,就发现只能用预先设定的密码进行登录,而修改的密码无效了。
应该是全局变量只存在于临时内存中而没有存在于永久内存中,导致断电后修改的密码没用永久保存。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-18 20:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表