fwjie 发表于 2011-4-22 22:52:12

写给第一次裸奔的人!

第一次看裸奔三部曲,有很多地方都不明白,特别是那么多工程文件之间的调用关系,只是按照手册一步一步操作,第一个实验就卡那了,这个实验是将出场测试程序中的TQ的LOGO图片换成一张自已的图片,我就按照教程上说的一步一步做,可是弄了半天老有错误,错误提示如下:(见附件吧,大概是未定义的变量)

我就不明白了,为什么呢?弄了半天,跑到LCD_TFT.C中找啊找,那么多东西,头都大了,改了N多次还是没改好,后来静下心来,看文件才发现,在LCD_TFT.h文件中有这么一句:
#define LCD_Type                LCDW35                //设定屏的类型
然后,又往后看一一节教程,才发现,这个文件中那么多对自已没用的东西,原来默认的屏是LCDW35,然后想想出错提示:找不到定义的数组!我就跑到TQ_LOGO.C中看了看,发现如下语句:
#if(LCD_Type == LCDT35)                        // 3.5寸屏
unsigned char TQ_LOGO_320240[] = ……

原来屏的定义不一样,所以这个图片数组就没被预处理,所以才会出现链接时错误,而LCDT35是东芝的240X320的屏,我又把屏的宏定义改为LCDT35,重新编绎了一下,结果发现了同样的错误,只不过换成找不到TQ_LOGO_240320了,为什么呢?我又往下看LCD_TFT.C这个文件,发现在最后面有下面语句:
        #if(LCD_Type == LCDT35)
                Uart_Printf( "Press any key to continue!\n" );
                Uart_Getch() ;                //Any Key To Next
                Paint_Bmp(0, 0, 240, 320, TQ_LOGO_240320);
        #elif((LCD_Type == LCDW35) || (LCD_Type == LCDS35))
                Uart_Printf( "Press any key to continue!\n" );
                Uart_Getch() ;                //Any Key To Next
                Paint_Bmp(0, 0, 320, 240, TQ_LOGO_320240);
        #elif(LCD_Type == LCDW43)
                Uart_Printf( "Press any key to continue!\n" );
                Uart_Getch() ;                //Any Key To Next
                Paint_Bmp(0, 0, 480, 272, TQ_LOGO_480272);
        #elif(LCD_Type == VGA)
                Uart_Printf( "Press any key to continue!\n" );
                Uart_Getch() ;                //Any Key To Next
                Paint_Bmp(0, 0, 640, 480, TQ_LOGO_640480);
        #elif(LCD_Type == LCDA70)
                Uart_Printf( "Press any key to continue!\n" );
                Uart_Getch() ;                //Any Key To Next
                Paint_Bmp(0, 0, 800, 480, TQ_LOGO_800480);
        #endif
                Uart_Printf("LCD Test Complete!\n");
                Uart_Printf("Press any key to quit!\n");
                Uart_Getch();       

而这些语句是在Lcd_TFT_Test( void )这个函数中的,这个函数就是在主函数中调用的LCD        测试函数。这个函数的其它组成部分,就是按5次键盘显示5种颜色,然后用各种颜色填充整个LCD屏,最后才是调用上面的这些语句最终实现自定义的图片显示。

我把LCD屏的宏定义改为LCDT35(240*320),然后在TQ_LOGO.C中,把数组名改为240*320。编绎没错误,我把生成的镜像烧到NAND中,运行发现,屏幕闪的厉害,想想为什么呢?应该是320*240的屏,是一行320个像素,扫描完一行320个点后,才开始扫下一行,而240*320是扫完一行240个点后,再扫下一行,而且前者240列,后则320列,错乱了,才会导致闪屏,也就是图片不能正常显示的原因,但愿没理解错吧,呵呵,我是新手,很多都不懂,写第一篇学习心得以勉励自已,我相信,若干天后我一定会成为高手……。

WTW11897 发表于 2011-4-24 17:44:07

:) 一起努力,俺也是菜鸟

weiweip327 发表于 2011-8-25 12:16:06

写的不错哇,我调试的时候也遇到这个问题了,哈哈,一起加油喽

heykerzou 发表于 2011-8-25 16:09:26

谢谢分享,正在摸索中!

zoujian 发表于 2011-8-31 12:02:27

谢谢花时间分享你的经验

三生石 发表于 2011-9-7 22:18:41

有一天会变厉害的、哈哈

cjt459 发表于 2011-12-2 17:28:28

一起加油!!

SuperZeil 发表于 2011-12-2 20:41:54

用了一年多了,我只想裸奔得好点,,为什么 不能下载东西,我积分够了哇~

刀锋1937 发表于 2011-12-6 14:42:36

楼主 头像!!!:lol
页: [1]
查看完整版本: 写给第一次裸奔的人!