天嵌 ARM开发社区

 找回密码
 注册
查看: 2248|回复: 8

写给第一次裸奔的人!

 关闭 [复制链接]
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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-5-18 06:37 , Processed in 1.031250 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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