实现数据的掉电存储功能
在实际的项目中会用到数据的存储功能
方法一:可以在单片机中使用内部EEprom作为Flash使用 也可以外挂Flash
本次讲解的是使用迪文屏K600+内核的屏幕 使用屏幕内部的存储空间作为数据库的存储记录
5.2.4
数据库的读写
表
5.5
数据库相关寄存器
读写数据库时,首先需要知道数据库在
FLASH
空间中的储存位置,也即数据库的首地址。从讲解
FLASH
储存空间的章节中,我们了解到可以分配给数据库的空间是有上限的(详见
3.3
节)。给数据库分配最大储存
空间时,对应了最小的图片空间,表
5.6
中给出了计算数据库空间首地址所需的参数对照表。
PIC_ID:给数据库空间分配最大值时,最多可储存的图片数量,同时,也是此时可使用的最大图片编号。表格中部分分辨 率有两个 PIC_ID,如 640*480 分辨率中 PIC_ID 为 42 和 43,意味着最大图片 ID 为 42,但由于一张图片占用了多个空间,数
据库应当从原
44
号图片储存位置开始储存。
计算数据库空间起始地址
设有
N
幅图片需要存储,则数据库的最小首地址
=((
N
*
K1
)-128)*64*1024
注:
N
大于
PIC_ID
;
128
,
64
,
1024
均为常数,可直接带入计算。
【
例
】
480*272
分辨率下,预留
200
幅图片的空间,那么数据库的最小起始地址
Adr_Min
为:
Adr_Min=((
200
*
1
)-128)*64*1024 =
4718592
= 0x0048 0000
【每
1Byte
数据库存储器占据
2Byte FLASH
】
使用
SD
卡导出数据库时,每个字库大小为
128KB
,编号从
236
开始。
DGUS
会自动处理跨字库情况。
用户读写数据库的过程中,
DGUS
会对数据进行加密和纠错操作,以确保数据存储的可靠性。用户数据库
在
FLASH
中是由若干个大小为
128KB
的数据库构成,每个页面写寿命是
10
万次(启动
1
次写操作则减少
1
次写寿命),但是读写操作中的地址是连续的,不会受到分页的影响,
DGUS
会自动地处理分页的问题。
相关指令集
举例说明:
1、5A A5 05 82 1100 0063 ;写数据。数据变量显示地址1100显示数据99。
2、5A A5 0C 80 56 5A 50 0010 0000 1100 0001 ;将数据保存到数据库。
将数据写到数据库地址0010 0000,80 指令使用 56 寄存器将上述数据存入存储器中。指令含义:5A A5 0C 80 56 5A(申请更新) 50(写入数据库) 0010 0000(数据库首地址) 1100(变量地址) 0001(写入数据的长度)。
数据导出
3、 到这一步可以建开始.DAT文件导出数据库,也可以屏掉电后发一条读数据库指令看数据是否正确写入,指令如下: 5A A5 0C 80 56 5A A0 0010 0000 1100 0001;读取数据库数据。
.DAT文件可以在DOS下自定义文件大小,比如1MB就是下方的1048576(1024*1024)
4.复制一个22_Config.bin文件,单独放在DWIN_SET文件夹,重新命名为272.DAT格式文件,为什么命名272见开发指南数据库导出部分。
6、 卡插入屏中,导出数据。
7、 导出完,UE软件打开272.DAT文件,可能看到是乱码数据。
这时点击 “编辑”,点击下方十六进制函数 十六进制编辑即可正常显示。
0063就是原来写入数据库首地址0010 0000保存的数据。其余的11数据当乱码处理即可。
以上就结束了。
迪文开发者论坛 - Powered by Discuz!
迪文开发者论坛 - Powered by Discuz!
数据库导出
以上说明的56指令 是将变量地址的数据地址的数据存入到数据库
一下为和迪文屏技术客服沟通的内容