当前位置:首页 > 单片机 > 单片机
[导读]  首先在开始这个说明之前,要简要说明下具体的环境:  编译工具:MDK4.20  开发板:安富莱v2版开发板  调试器:JLink v8盗版移植篇  相信大家有移植经验的都知道,移植确实是一件非常墨迹的事情,怎么说呢,代码都

  首先在开始这个说明之前,要简要说明下具体的环境:

  编译工具:MDK4.20

  开发板:安富莱v2版开发板

  调试器:JLink v8盗版


移植篇

  相信大家有移植经验的都知道,移植确实是一件非常墨迹的事情,怎么说呢,代码都是别人的,风格也是别人的,文件结构,定义之类都是别人的,看别人的东西是种进步,但是,也是一个痛苦的过程,因为有时候资料确实很少,而且有时候还是E文的,专业名词一大堆,我们根本没有办法想象工作量是多么的巨大.

  不过事情都是这样,你不懂他的时候他就像是巨山,但是一旦你理解他的时候,你才会感觉到原来他是那么的简单(从我的经验上来看,至少应该是这样的).

  好吧,闲话少说,我们就来开始我们的移植之旅把.

  首先,我们需要准备的东西有uCGUI3.90,这个版本是大家现在用的比较多的,效率也比较高,别人都是这么评论的,至于其他版本的,我没有接触很多,所以不能过多评论.

  uCGUI有三个文件夹,一个是tool,这个文件夹是用来使用一些uCgui的上位机程序,基本都是字体和模板查看之类的.在sample文件夹下面是已经别人帮你写好了很多有用的东西,像跟操作系统有关的GUI_X或者一些模板(后面我们会用到的自己定义的Demo),或者是gui配置.后面再一一详细叙说这个文件夹的功能.在Start文件夹里面,这是我们最主要的文件夹.里面就包含了uCGUI的源代码,uCGUI的作者把源代码放进vc里面进行编译了(当然,这是用标准C语言写的程序,所以我们可以放在任何C语言平台下编译而不会担心兼容性问题,这个uCGUI在这方面做的算是完美了),所以,我们可以在vc平台下写界面,然后再把代码拷进我们的下位机编译器进行编译,这样子效率就会非常高了.(像51那时候写界面就是疯狂的一次一次的烧,真是纠结..).


然后这里放的就是uCGUI的源代码了,在GUI文件夹下面.

  这则是每个文件夹的功能(参考uCGUI中文手册,ucgui.com翻译).

  大概看一下就可以了,这个跟我们移植的关系不大,关键点是带*的可以不包含进去(待会配置会讲到.).然后其他的都要包含进去.

接着我们要把我们的文件包含进我们已经搭建好的工程,这里说明下我们的工程要求.

  一般来说,我们要画一个图形,最基本的就是从点开始,从点到线,从点到面...,所以在已经建好的工程里面你要能点亮你的屏幕,能点出最基本的点,能填充出最基本矩阵(这是uCGUI最包含的函数),反正我移植的时候涉及到的包括三个函数,LCD_Init();LCD_Draw_Point(x,y,color),LCD_Fillcircuit(x1,x2,y1,y2).这三个函数是必须的,后面也会说明如何把这三个函数进行填充.

  当我们把文件复制进去的时候,再加上我们一开始已经创建好的工程的时候,文件结构差不多就是这个样子了,截图如下

  user包括,main函数就是我们初始化和函数调用,绘图用的文件,另外那几个文件相信大家都明白了把,tft_lcd.c就是你在,没有移植uCGUI的情况下,纯液晶屏驱动,这里建议把液晶屏的API和最底层驱动(API就是画圆啊,画椭圆啊,清除屏幕之类的,底层驱动就是驱动液晶屏的管脚运作,fsmc初始化,时钟配置之类的),不过我这里也是集成在一起了,比较懒,大家别学.

  其他文件夹我都包含进去了,在没包含进去的时候,编译是可以通过的,但是,那么多文件包含进去,有些配置还是没有设定好的.所以会有错误,蛮编译一下.没事的.

  这里我们需要修改的文件只有这几个:,,,这是ucgui开放给我们的用户层的文件,在ucgui中,lcdDrive文件夹要自己加进去,GUI_X.c也是,另外三个文件都是包含了,在GUIConf.h中


1#ifndefGUICONF_H2#defineGUICONF_H34#defineGUI_OS(0) //这里指的是对操作系统的支持,因为我们这里只有单纯的移植uCGUI,5                    //所以,要把这个关闭,不然后面会有很多东西编译进去6                     //不然到时候编译的时候会发生很多你无法修改的错误7#defineGUI_SUPPORT_TOUCH(0)  //这里则是对触摸屏的支持,触摸屏我是能做,但是没有用,8//所以省去麻烦,把触摸屏关掉,相信移植好之后,要支持触摸屏大家都会有门路了9#defineGUI_SUPPORT_UNICODE(1) //UNICODE编码支持,如果大家只是单纯的想用英文显示,而不移植中文字库进去,10//这个是可以关掉的,因为UNICODE是向下支持的,所以开不开无所谓11                      //反正都是能够正常显示的12#defineGUI_DEFAULT_FONT&GUI_Font6*8  //这里是设定默认字体的,我们可以在要写什么字的时候把该字号的字体.13//c包含进我们的主函数里面,所以这里不用改14#defineGUI_ALLOC_SIZE5000//这里讲的是动态内存机制15                    //这里rgb接口模式的可能会有用到,uCGUI就是在我们的ram开辟一块空间,                      //然后uCGUI把运算好的每个点都放进我们主控ram里面的空间16                    //所以,这里就相当于把写进液晶gram里面的操作变成了写进主控ram里面,                      //那么大家可能就会问了,干嘛这么多次一举,直接写进去不就可以了1718/*原理:一般来说,在大的屏幕上面(4.0以上吧,印象中),都是没有控制器,(像我的液晶屏就是spfd5420,当然,19不同的屏幕的液晶主控都是不一样的,但是寄存器操作都是差不多的,20所以有些初始化配置还是能互用的.)所以呢,这时候我们要用到的就只有RGB接口了,21RGB要求我们要不断的刷新屏幕,刷新率越高,效果就越好,因为一般这种用来做动态的,uCGUI就是属于静态类型的22像如果我们要用stm32主控做视频应用的时候,就是动态的,我们需要不断的刷新屏幕,但是当我们主控一边运算,23一边往液晶接口送数据的时候,会有明显刷屏的感觉(运算->画点->运算->画点....,这个运算24->运算.......画点->画点->画点...是不一样的,因为对屏幕一直画点,填充,而中间不用插入运算,25刷一个屏幕时间时间倍速差别是非常巨大的,后面大家也会见识到这种差别.),所以,用GUI申请的空间里面26边运算,边填充,填充完再一次性运出去(这里可以通过DMA控制FSMC总线,不断的从外置SRAM往GRAM自动搬运数据,27这是不用主控去插手的,所以,主控大部分时间是负责运算,其他时间可以空闲出来,28让DMA自己去忙活),同理,因为dma跟cpu的分工,所以,这里同样的把画点,画点,运算,运算不完全的分开了,29屏幕刷新速度非常之可观(DMA的速度相比大家还是非常了解的,它就是为速度而生的.),*/3031//#defineGUI_ALLOC_SIZE1024*1024      /*Sizeofdynamicmemory...ForWMandmemorydevices*/3233/*********************************************************************34*35*Configurationofavailablepackages36*/3738#defineGUI_WINSUPPORT1//这个是窗口支持,一般开始开着的39#defineGUI_SUPPORT_MEMDEV1//内存控制,开40#defineGUI_SUPPORT_AA0//抗锯齿,为了性能着想,还是关了比较好4142#endif/*Avoidmultipleinclusion*/

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭