OpenEdv-开源电子网

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

7寸屏多页缓存测试的问题

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2012-8-28
在线时间
0 小时
发表于 2013-7-30 18:36:53 | 显示全部楼层 |阅读模式
你好, 请教个7"屏的使用问题
先把要显示的值刷到显示缓存里面
for(i=0;i<8;i++)
   {
       LCD_SetOperateLayer(i);         //设置当前操作缓存
      LCD_SetDisplayLayer(i);         //设置当前显示缓存
      LCD_Clear(SPEED_COLOR_TBL);
      sprintf((char*)str,"我是第%d页缓存",i);
      OINT_COLOR=BLACK;
       Show_Str(360,230,lcddev.width,16,str,16,0);              
         delay_ms(1200);delay_ms(1300);      
   }
再直接调用显示缓存里面
for(i=0;i<8;i++)
   {
      LCD_SetDisplayLayer(i);         //设置当前显示缓存
      sprintf((char*)str,"我是第%d页缓存",i);
       Show_Str(360,230,lcddev.width,16,str,16,0);              
         delay_ms(1200);delay_ms(1300);      
   }
结果显示没切换页面, 但文字有显示在切换页面
请问一下哪里设置不对吗?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2012-8-28
在线时间
0 小时
 楼主| 发表于 2013-7-30 18:41:45 | 显示全部楼层



按上面使用说明里的资料看,应该是切换当前页就能切换显示内容,  有哪里出错了吗?


回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2013-7-30 21:43:46 | 显示全部楼层
实测是无问题的.
你检查下是不是LCD_SetDisplayLayer(i);    等函数有问题?
战舰板代码如下:
//设置当前显示层
//layer:当前显示层 
void LCD_SetDisplayLayer(u16 layer)
{  
lcddev.sysreg&=~0X0E00;     //清除之前的设置
lcddev.sysreg|=(layer&0X07)<<9; //设置新的值
LCD_WriteReg(LCD_PREF,lcddev.sysreg); //写LCD_PREF寄存器        

//设置当前操作层
//layer:当前显示层 
void LCD_SetOperateLayer(u16 layer)
{  
lcddev.sysreg&=~0X7000; //清除之前的设置
lcddev.sysreg|=(layer&0X07)<<12; //设置新的值
LCD_WriteReg(LCD_PREF,lcddev.sysreg); //写LCD_PREF寄存器        
}
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2012-8-28
在线时间
0 小时
 楼主| 发表于 2013-7-31 11:14:32 | 显示全部楼层
按给出的方式解决了,如下:

//LCD重要参数集       
typedef struct  
{                                  
   u16 width;         //LCD 宽度
   u16 height;         //LCD 高度
   u16 id;            //LCD ID
   u8  dir;         //横屏还是竖屏控制:0,竖屏;1,横屏。   
   u16  sysreg;      //PREF寄存器,设置当前操作页,显示页和背光等。   
   u8   wramcmd;      //开始写gram指令
   u8  setxcmd;      //设置x坐标指令
   u8  setycmd;      //设置y坐标指令    
}_lcd_dev;      
这个结构体里面的sysreg
应该是u16才对,原例子写成了u8
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2013-7-31 11:16:00 | 显示全部楼层
谢谢指出.
回复 支持 反对

使用道具 举报

29

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2013-5-4
在线时间
0 小时
发表于 2013-10-24 20:13:17 | 显示全部楼层
回复【楼主位】XYZIJKA:
---------------------------------
楼主,您好,您的关于多页缓存的代码可以借我学习一下吗,我弄了一段时间没有弄出来,不甚感激
回复 支持 反对

使用道具 举报

26

主题

467

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
876
金钱
876
注册时间
2013-10-3
在线时间
23 小时
发表于 2014-4-23 16:05:11 | 显示全部楼层
回复【4楼】XYZIJKA:
---------------------------------
厉害厉害,,多谢分享啊,,,,
避免犯错本是错误所在,我错故我在……
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-10 04:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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