打印

求助!!UCGUI字符显示有问题

[复制链接]
8968|37
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ligping|  楼主 | 2012-6-13 09:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
现在在用STM32驱动液晶屏,UCGUI做图像界面。我用UCGUI是以前人家就移植好的了,我只是修改了一下驱动和分辨率方面的参数,不知道为什么显示字符的时候就有问题,显示字符的时候是显示一块黑色的区域,而不是字符。显示直线之类的又是正常的,不知道是那里出了问题。大家帮我看看是那里的问题。
沙发
ligping|  楼主 | 2012-6-13 09:07 | 只看该作者

使用特权

评论回复
板凳
ligping|  楼主 | 2012-6-13 09:10 | 只看该作者
上面一行黑色区域的程序是:
        GUI_SetFont(&GUI_Font8x16);
        GUI_SetColor(GUI_LIGHTGREEN);
        GUI_DispStringAt("  Hello  world   ",10,40);

中间一行黑色区域程序是:

               GUI_SetColor(GUI_RED);
                GUI_DispDecAt(1223,100,100,4);

使用特权

评论回复
地板
ligping|  楼主 | 2012-6-13 09:53 | 只看该作者
给位大侠能帮忙分析一下不?

使用特权

评论回复
5
IJK| | 2012-6-13 10:08 | 只看该作者
应该是底层驱动没有完全改好 造成的。
可以一步步来,先不用ucGUI,把"  Hello  world   " 这样的字符串正常显示出来。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
ligping + 1
6
fq1110| | 2012-6-13 12:46 | 只看该作者
看你颜色也不对,你试试,填充整个区域,用红色,看看是不是正确。
看你应该是驱动不对。

使用特权

评论回复
7
ligping|  楼主 | 2012-6-13 14:32 | 只看该作者
颜色确实有问题,用UCGUI的默认颜色的话,写红色就显示蓝色了,蓝色就显示红色。但是整片填充的话也只是这个问题啊,显示正常啊。你说的驱动的问题是指 厂商给的初始化程序的问题还是指其他的函数呢?

使用特权

评论回复
8
ligping|  楼主 | 2012-6-13 14:43 | 只看该作者
奇怪换了一个屏颜色就没有问题了,我手头上有两张不同IC的屏,一个是HX8347D,另外一个是HX8347G。屏的厂商跟我说这两个屏只是初始化命令不同而已。但是换一个屏同一个颜色定义显示出来的颜色却是不一样。不知道那个地方还有问题。

使用特权

评论回复
9
ligping|  楼主 | 2012-6-13 14:47 | 只看该作者

使用特权

评论回复
10
梅花望青竹| | 2012-6-13 14:48 | 只看该作者
你用的背景色有问题吧,是不是定义错了?

使用特权

评论回复
11
ligping|  楼主 | 2012-6-13 14:49 | 只看该作者
这个是HX8347G的屏全部填充红色时候显示的。手机拍的图片效果不好。没有看出有什么异样。

使用特权

评论回复
12
IJK| | 2012-6-13 15:31 | 只看该作者
HX8347D 和 HX8347G的屏恰好都用过,印象里只需要用厂商或者网上找到的初始化代码就行, 颜色相关的初始化代码这2个屏没多大区别。

使用特权

评论回复
13
ligping|  楼主 | 2012-6-13 15:56 | 只看该作者
请问楼上这个问题会是出现在那里呢?楼上用的CPU是那个?能发这个屏的驱动跟UCGUI给我吗? 邮箱:ligping2000@163.com

使用特权

评论回复
14
ligping|  楼主 | 2012-6-13 15:58 | 只看该作者
10# 梅花望青竹
这个跟背景色的定义有关系吗?背景色是白色的啊。

使用特权

评论回复
15
ligping|  楼主 | 2012-6-14 14:26 | 只看该作者
还是搞不定啊,现在不用ucgui写字符,显示出来的也都还是一片的黑色背影。

使用特权

评论回复
16
fq1110| | 2012-6-14 15:49 | 只看该作者
给段8347g的代码给你,肯定可以用,希望对你有帮助。
void TM_HX8347_G_Init(void)
{
        Delayms(50); /* delay 50 ms */
//Start initial Sequence
    LCD_WriteReg(0x002E,0x0089);                //GDOFF
        LCD_WriteReg(0x0029,0x008f);                //RTN
        LCD_WriteReg(0x002b,0x0002);                   //DUM
        LCD_WriteReg(0x00e2,0x0006);                //VREF
        LCD_WriteReg(0x00e4,0x0001);                //PTBA[15:8]
        LCD_WriteReg(0x00e5,0x0010);                //PTBA[7:0]
        LCD_WriteReg(0x00e6,0x0001);                //STBA[15:8]
        LCD_WriteReg(0x00e7,0x0010);                //STBA[7:0]
        LCD_WriteReg(0x00e8,0x0070);                  //OPON[7:0]
        LCD_WriteReg(0x00f2,0x0000);                //GEN
//Driving abiliSetting
        LCD_WriteReg(0x00ea,0x0000);                //PTBA[15:8]
        LCD_WriteReg(0x00eb,0x0020);                //PTBA[7:0]
        LCD_WriteReg(0x00ec,0x003c);                //STBA[15:8]
        LCD_WriteReg(0x00ed,0x00c8);                //STBA[7:0]
        LCD_WriteReg(0x00e9,0x0038);                //OPON1[7:0]
        LCD_WriteReg(0x00f1,0x0001);                //OTPS1B
//Gamma 2.2 Setting
        LCD_WriteReg(0x0040,0x0002);                //0x01
        LCD_WriteReg(0x0041,0x0007);                //0x01
        LCD_WriteReg(0x0042,0x0000);                //0x01
        LCD_WriteReg(0x0043,0x0010);                //0x01
        LCD_WriteReg(0x0044,0x000c);                //0x01
        LCD_WriteReg(0x0045,0x002b);                //0x01
        LCD_WriteReg(0x0046,0x0001);                //0x01
        LCD_WriteReg(0x0047,0x004e);                //0x01
        LCD_WriteReg(0x0048,0x0001);                //0x01
        LCD_WriteReg(0x0049,0x0013);                //0x01
        LCD_WriteReg(0x004a,0x0018);                //0x01
        LCD_WriteReg(0x004b,0x0018);                //0x01
        LCD_WriteReg(0x004c,0x0016);                //0x01
        LCD_WriteReg(0x0050,0x0014);                //0x01
        LCD_WriteReg(0x0051,0x0033);                //0x01
        LCD_WriteReg(0x0052,0x002f);                //0x01
        LCD_WriteReg(0x0053,0x003f);                //0x01
        LCD_WriteReg(0x0054,0x0038);                //0x01
        LCD_WriteReg(0x0055,0x003d);                //0x01
        LCD_WriteReg(0x0056,0x0031);                //0x01
        LCD_WriteReg(0x0057,0x007e);                //0x01
        LCD_WriteReg(0x0058,0x0009);                //0x01
        LCD_WriteReg(0x0059,0x0007);                //0x01
        LCD_WriteReg(0x005a,0x0007);                //0x01
        LCD_WriteReg(0x005b,0x000c);                //0x01
        LCD_WriteReg(0x005c,0x001e);                //0x01
        LCD_WriteReg(0x005d,0x00cc);                //0x01

        CMD->LCD_REG=0x21;
    LCD_WriteReg(0x001B,0x001B);        //VRH=4.65V
    LCD_WriteReg(0x001A,0x0002);        //BT (VGH~15V),WriteData(VGL~-7V),WriteData(DDVDH~5V)
    LCD_WriteReg(0x24,0x0044);                //VMH(VCOM High voltage ~4.0V)  0x61 //46
    LCD_WriteReg(0x25,0x0060);                //VML(VCOM Low voltage -1.0V)   0x5e //64
        
    LCD_WriteReg(0x23,0x00a2);               //for Flicker adjust //can reload from OTP   /A0      
    //Power on Sett
    LCD_WriteReg(0x18,0x0037);               //I/P_RADJ),WriteData(N/P_RADJ),WriteData( Normal mode 75Hz
    LCD_WriteReg(0x19,0x0001);                //OSC_EN='1'),WriteData( start Osc
    LCD_WriteReg(0x01,0x0000);                //DP_STB='0'),WriteData( out deep sleep
    LCD_WriteReg(0x1F,0x0088);                        //GAS=1),WriteData( VOMG=00),WriteData( PON=0),WriteData( DK=1),WriteData( XDK=0),WriteData( DVDH_TRI=0),WriteData( STB=0
    Delayms(5);   
    LCD_WriteReg(0x1F,0x0080);                        //GAS=1),WriteData( VOMG=00),WriteData( PON=0),WriteData( DK=0),WriteData( XDK=0),WriteData( DVDH_TRI=0),WriteData( STB=0
    Delayms(5);
    LCD_WriteReg(0x1F,0x0090);                        //GAS=1),WriteData( VOMG=00),WriteData( PON=1),WriteData( DK=0),WriteData( XDK=0),WriteData( DVDH_TRI=0),WriteData( STB=0
    Delayms(5);   
    LCD_WriteReg(0x1F,0x00D4);                        //GAS=1),WriteData( VOMG=10),WriteData( PON=1),WriteData( DK=0),WriteData( XDK=1),WriteData( DDVDH_TRI=0),WriteData( STB=0
    Delayms(5);   
    //262k/65k color
    //LCD_WriteReg(0x17,0x0006);                //default 0x06 262k color // 0x05 65k color           
        LCD_WriteReg(0x17,0x0055);                //default 0x06 262k color // 0x05 65k color           
                   
    //SET PANEL
    /*******************RGB****************************/
    /*WriteCommand(0x31),WriteData(0x0002);//RGB
    WriteCommand(0x32),WriteData(0x0000);*/           
    LCD_WriteReg(0x36,0x0009);                //SS_P),WriteData( GS_P),WriteData(REV_P),WriteData(BGR_P
    //Display ON Set
    LCD_WriteReg(0x28,0x0038);                   //GON=1),WriteData( DTE=1),WriteData( D=1000
    Delayms(40);
    LCD_WriteReg(0x28,0x003F);                   //GON=1),WriteData( DTE=1),WriteData( D=1100  
}

使用特权

评论回复
17
IJK| | 2012-6-14 16:43 | 只看该作者
LZ哪个屏有问题?
可以发初始化代码 供参考。

使用特权

评论回复
18
ligping|  楼主 | 2012-6-14 17:08 | 只看该作者
17# IJK 屏没有问题吧,我手上有四块屏,两块HX8347D、两块HX8347G的,情况都是一样的。初始化代码应该没有问题啊,那是厂家给的。

使用特权

评论回复
19
ligping|  楼主 | 2012-6-14 17:11 | 只看该作者
16# fq1110 谢谢,我试试看

使用特权

评论回复
20
IJK| | 2012-6-14 17:46 | 只看该作者
一会儿说“奇怪换了一个屏颜色就没有问题了”
又说 “我手上有四块屏,两块HX8347D、两块HX8347G的,情况都是一样的”
到底怎么样 ?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

86

帖子

1

粉丝