天嵌 ARM开发社区

 找回密码
 注册
查看: 2756|回复: 4

LCD 显示器不能正常显示-----在学习无OS LCD 显示器的时候遇到的问题

[复制链接]
qin11745 发表于 2013-7-25 09:17:32 | 显示全部楼层 |阅读模式
本帖最后由 qin11745 于 2013-7-25 09:21 编辑

刚开始学习裸奔,由于光盘给的代码是3.5寸屏幕的,买到的是4.3寸屏幕,在自己该代码的时候遇到LCD显示不正常的问题,如下:(LCD_Type      LCDW43        已选)
我原始的图片是这样的


可还是显示结果却是这样的:



百思不得其解,哪位遇到过或者知道的讲一下啊

本帖子中包含更多资源

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

×
TQ-ZQL 发表于 2013-7-25 09:32:16 | 显示全部楼层
看下image2lcd那个工具做图做的不对。像rgb顺序,图片的rgb模式(rgb565,rgb888等)对不对,具体可以用我们的给的图自己做一次先
回复

使用道具 举报

 楼主| qin11745 发表于 2013-7-25 09:42:58 | 显示全部楼层
TQ-ZQL 发表于 2013-7-25 09:32
看下image2lcd那个工具做图做的不对。像rgb顺序,图片的rgb模式(rgb565,rgb888等)对不对,具体可以用我们 ...

我用的是bmp2h.exe软件转换的图片数组,转换成3.4寸的,把屏幕设置为3.4寸的正常显示过,应该不是图片转换工具的问题,像这个情况是不是数组越界或者数组数据没有对齐之类的啊
PS:用原代的loog数组数据可以正常显示3.4寸的图片
回复

使用道具 举报

 楼主| qin11745 发表于 2013-7-25 10:47:34 | 显示全部楼层
终于显示正常了,就是图片数组数据没有取正确的问题
更该后的函数:

void Paint_Bmp(int x0,int y0,int h,int l,unsigned char bmp[])
{
        int x,y;
        U32 c;
        int p = 0;
       
    for( y = 0 ; y < l ; y++ )
    {
            for( x = 0 ; x < h ; x++ )
            {
                    c = bmp[p] | (bmp[p+1]<<8) ;//原带的代码是c = bmp[p+1] | (bmp[p]<<8)
                        if ( ( (x0+x) < gp_lcd->Scr_xsize) && ( (y0+y) < gp_lcd->Scr_ysize) )
                                BUF(y+y0,x+x0)=c;
                       
                    p = p + 2 ;
            }
    }
}


但是又有一个新问题,为啥原带的代码可以显示正常,而我的要改为这样才能正常呢?
还有就是我做了两张图片,一张可以完美显示,而另一张却不行(作图片的方法是一样的)怎么办?
回复

使用道具 举报

TQ-ZQL 发表于 2013-7-25 15:25:39 | 显示全部楼层
应该不是。因为如果这样的话系统会报错,或者直接崩溃
回复

使用道具 举报

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

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-7-17 12:46 , Processed in 2.052530 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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