OpenEdv-开源电子网

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

STemWin移植竖屏正常,但竖屏时背景不对有黑白相间条纹

[复制链接]

12

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2014-11-5
在线时间
11 小时
发表于 2016-10-19 22:43:16 | 显示全部楼层 |阅读模式
2金钱
本帖最后由 mk_欣驰 于 2016-10-19 23:02 编辑

竖屏时:LCD_Disp_Dir(0);         // 0竖屏,1,横屏   
显示是对的。 QQ截图20161019225508.png
横屏就不对了。
QQ截图20161019225527.png
是哪里不对,求大神指教!!!!!


代码如下:
[mw_shl_code=c,true]void LCDx_Init(void)
{  
           LCD_FSMC_Init();
  
     Delay(0xfffff);         
   
        LCD_WriteReg(0x00E5,0x78F0);
                LCD_WriteReg(0x0001,0x0100);
                LCD_WriteReg(0x0002,0x0700);
                LCD_WriteReg(0x0003,0x1030);
                LCD_WriteReg(0x0004,0x0000);
                LCD_WriteReg(0x0008,0x0202);  
                LCD_WriteReg(0x0009,0x0000);
                LCD_WriteReg(0x000A,0x0000);
                LCD_WriteReg(0x000C,0x0000);
                LCD_WriteReg(0x000D,0x0000);
                LCD_WriteReg(0x000F,0x0000);
                //power on sequence VGHVGL
                LCD_WriteReg(0x0010,0x0000);   
                LCD_WriteReg(0x0011,0x0007);  
                LCD_WriteReg(0x0012,0x0000);  
                LCD_WriteReg(0x0013,0x0000);
                LCD_WriteReg(0x0007,0x0000);
                //vgh
                LCD_WriteReg(0x0010,0x1690);   
                LCD_WriteReg(0x0011,0x0227);
                //delayms(100);
                //vregiout
                LCD_WriteReg(0x0012,0x009D); //0x001b
                //delayms(100);
                //vom amplitude
                LCD_WriteReg(0x0013,0x1900);
                //delayms(100);
                //vom H
                LCD_WriteReg(0x0029,0x0025);
                LCD_WriteReg(0x002B,0x000D);
                //gamma
                LCD_WriteReg(0x0030,0x0007);
                LCD_WriteReg(0x0031,0x0303);
                LCD_WriteReg(0x0032,0x0003);// 0006
                LCD_WriteReg(0x0035,0x0206);
                LCD_WriteReg(0x0036,0x0008);
                LCD_WriteReg(0x0037,0x0406);
                LCD_WriteReg(0x0038,0x0304);//0200
                LCD_WriteReg(0x0039,0x0007);
                LCD_WriteReg(0x003C,0x0602);// 0504
                LCD_WriteReg(0x003D,0x0008);
                //ram
                LCD_WriteReg(0x0050,0x0000);
                LCD_WriteReg(0x0051,0x00EF);
                LCD_WriteReg(0x0052,0x0000);
                LCD_WriteReg(0x0053,0x013F);  
                LCD_WriteReg(0x0060,0xA700);
                LCD_WriteReg(0x0061,0x0001);
                LCD_WriteReg(0x006A,0x0000);
                //
                LCD_WriteReg(0x0080,0x0000);
                LCD_WriteReg(0x0081,0x0000);
                LCD_WriteReg(0x0082,0x0000);
                LCD_WriteReg(0x0083,0x0000);
                LCD_WriteReg(0x0084,0x0000);
                LCD_WriteReg(0x0085,0x0000);
                //
                LCD_WriteReg(0x0090,0x0010);
                LCD_WriteReg(0x0092,0x0600);
               
                LCD_WriteReg(0x0007,0x0133);
                LCD_WriteReg(0x00,0x0022);//
        LCD_Disp_Dir(0);         // 0竖屏,1,横屏
        LCD_LED;

}  [/mw_shl_code]


[mw_shl_code=applescript,true]void LCD_Disp_Dir(u8 dir)
{
    if(dir==0)//竖屏
    {
        lcddev.dir=0;
        lcddev.width=240;
        lcddev.height=320;
        
        lcddev.wramcmd=0X22;
        lcddev.setxcmd=0X20;
                lcddev.setycmd=0X21;  
    }
    else    //横屏
    {
        lcddev.dir=1;
        lcddev.width=320;
        lcddev.height=240;
        
        lcddev.wramcmd=0X22;
        lcddev.setxcmd=0X21;
                lcddev.setycmd=0X20;         
    }
    LCD_Scan_Dir(dir);        //设置扫描方向[mw_shl_code=applescript,true]//éèÖÃ1a±êλÖÃ


[mw_shl_code=applescript,true]//éèÖÃLCDμÄ×Ô¶ˉé¨Ãè·½Ïò
void LCD_Scan_Dir(u8 dir)
{
        u16 regval=0;
    if(dir==0) {regval|=V_L2R_U2D;} //竖屏时;从左到右,从上到下
    else {regval|=H_L2R_U2D;} //横屏时;从左到右,从上到下
        regval|=1<<12;  
        LCD_WriteReg(0X03,regval);
}  [/mw_shl_code]
[mw_shl_code=applescript,true]//设置光标位置
//Xposá×&#248;±ê
//Ypos:×Y×&#248;±ê
void LCD_SetCursor(u16 Xpos, u16 Ypos)
{                 
    LCD_WriteReg(lcddev.setxcmd, Xpos);
    LCD_WriteReg(lcddev.setycmd, Ypos);
} [/mw_shl_code]




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

使用道具 举报

12

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2014-11-5
在线时间
11 小时
 楼主| 发表于 2016-10-19 22:50:42 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2016-10-20 21:57:15 | 显示全部楼层
应该是还有底层函数没有移植好。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

12

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2014-11-5
在线时间
11 小时
 楼主| 发表于 2016-10-23 12:15:34 | 显示全部楼层
正点原子 发表于 2016-10-20 21:57
应该是还有底层函数没有移植好。

原子哥,我在LCDx_Init()函数里增加了 下面一段代码,背景条纹不见了。
        delay_ms(50);
        LCD_WriteReg(0x0000,0x0001);
        delay_ms(50);
但是横屏时,图片依旧无法正常显示。
比如打开鼠标显示 GUI_CURSOR_Show();或者运行 GUIDEMO_Main();
都会花屏:
QQ截图20161023115048.png QQ截图20161023115106.png


我的程序是参考了原子哥的探索者F4例程。做了一些修改、简化,我用的ILI9325。
方向切换不就是调换X、Y坐标吗?
竖屏:
        lcddev.wramcmd=0X22;
        lcddev.setxcmd=0X20;
        lcddev.setycmd=0X21;  
横屏:      
        lcddev.wramcmd=0X22;
        lcddev.setxcmd=0X21;
        lcddev.setycmd=0X20;  
设置光标函数:
void LCD_SetCursor(u16 Xpos, u16 Ypos)
{
    if(lcddev.dir==1)Xpos=lcddev.width-1-Xpos;
    LCD_WriteReg(lcddev.setxcmd, Xpos);
    LCD_WriteReg(lcddev.setycmd, Ypos);
}                

GUIDRV_Template.c文件是直接复制原子哥的例程。

竖屏图片显示都是正常的,为什么换成横屏就不行?
是我那里还没有注意到?
希望得到大家的指点!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2016-10-24 22:40:25 | 显示全部楼层
mk_欣驰 发表于 2016-10-23 12:15
原子哥,我在LCDx_Init()函数里增加了 下面一段代码,背景条纹不见了。
        delay_ms(50);
        LCD_WriteReg ...

慢慢改,还有地方没改好
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

12

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2014-11-5
在线时间
11 小时
 楼主| 发表于 2016-10-27 21:21:11 | 显示全部楼层
正点原子 发表于 2016-10-24 22:40
慢慢改,还有地方没改好

到底是哪里没改好呀,期待原子哥的帮助!!!!
回复

使用道具 举报

1

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1183
金钱
1183
注册时间
2015-5-28
在线时间
149 小时
发表于 2016-11-7 12:22:26 | 显示全部楼层
你先保证不上emwin你的液晶显示是没有问题的~其次,emwin移植其实很简单,只需要完成三个接口就可以运行起来了,初始化,读点,写点,而且有标准的模板文件给你移植
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 21:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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