迪文科技论坛

 找回密码
 立即注册
搜索
查看: 5794|回复: 5

【分享】使用DGUS II的数据库为什么存储不了数据

[复制链接]

564

主题

165

回帖

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11721
发表于 2019-5-22 15:43:01 | 显示全部楼层 |阅读模式

T5只能通过向变量地址0008H写入数据来实现数据库的读写,不再支持movxl指令,同时数据库的读写地址和长度只能是偶数。并且在发送完写数据库的指令后直接去读数据是读不出来的,因为现在的T5内核运行周期非常快,当发送数据库写入命令后底层可能还没有执行完数据的存储,但由于运行周期太快所以已经到了读数据的指令,就会造成读取的数据不对。正确的办法是在数据库中存储了数据后不断检测0008的高字节,如果高字节清零了代表底层已经执行完了数据库的写入。再执行下一步,写数据库指令如下:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

5

主题

14

回帖

58

积分

注册会员

Rank: 2

积分
58
发表于 2019-8-10 12:50:24 | 显示全部楼层
请问楼主发的图片是那个文件啊,能发一下吗
回复

使用道具 举报

0

主题

181

回帖

1855

积分

金牌会员

Rank: 6Rank: 6

积分
1855
发表于 2019-8-10 13:09:45 | 显示全部楼层
591196480 发表于 2019-8-10 12:50
请问楼主发的图片是那个文件啊,能发一下吗

这就是T5开发指南里面的内容,你目前用的屏型号是什么,我发相对应的给你参考。
回复

使用道具 举报

5

主题

14

回帖

58

积分

注册会员

Rank: 2

积分
58
发表于 2019-8-10 13:15:16 | 显示全部楼层
哦哦,我找到了,谢谢
回复

使用道具 举报

6

主题

27

回帖

109

积分

注册会员

Rank: 2

积分
109
发表于 2019-8-13 09:56:18 | 显示全部楼层
  1. // 读写FLASH操作
  2. void flash(int mod,long addr_flash,int addr, int len)
  3. {
  4.         /*
  5.         0x08 NOR_FLASH_RW_CMD 4
  6.         D7:操作模式 0x5A=读 0xA5=写,CPU 操作完清零。
  7.         D6:4:片内 Nor Flash 数据库首地址,必须是偶数,0x000000-0x02:7FFE,160KWords。
  8.         D3:2:数据变量空间首地址,必须是偶数。
  9.         D1:0:读写字长度,必须是偶数。
  10.         */
  11.     char rw_flash_cmd[8]={0};    //数据库读操作
  12.         rw_flash_cmd[0] = mod;
  13.         rw_flash_cmd[1] = (unsigned char)(addr_flash >> 16);
  14.         rw_flash_cmd[2] = (unsigned char)(addr_flash >> 8);
  15.         rw_flash_cmd[3] = (unsigned char)(addr_flash & 0xFE);
  16.         rw_flash_cmd[4] = (unsigned char)(addr >> 8);
  17.         rw_flash_cmd[5] = (unsigned char)(addr & 0xFE);
  18.         rw_flash_cmd[6] = (unsigned char)(len >> 8);
  19.         rw_flash_cmd[7] = (unsigned char)(len & 0xFE);
  20.         //send_data_com(COM_PORT,rw_flash_cmd,8);        // debug
  21.         write_dgus_vp(0x08,rw_flash_cmd,4);        //启动读Flash
  22.         //等待数据读取OK
  23.         while(1)
  24.     {
  25.                 delayms(20);
  26.                 read_dgus_vp(0x0008,rw_flash_cmd,1);
  27.                 if(rw_flash_cmd[0]==0x00)
  28.                         break;
  29.     }
  30. }
复制代码
回复

使用道具 举报

45

主题

254

回帖

3358

积分

论坛元老

Rank: 8Rank: 8

积分
3358
发表于 2019-9-18 13:28:53 | 显示全部楼层

好代码!
send_data_com(COM_PORT,rw_flash_cmd,8);
read_dgus_vp(0x0008,rw_flash_cmd,1);
这两个不错,但没贴出来
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-10-19 00:22 , Processed in 2.150141 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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