EmbeddedGui 在lpc2294上的应用

        首先,要感谢rickleaf老兄http://blog.csdn.net/rickleaf 的帮助,在做一个小项目时想找个能应用在单色LCD上的GUI,rickleaf老兄介绍了EmbeddedGUI这个开源项目(超小型开源源码的嵌入式系统图形库http://blog.csdn.net/rickleaf/article/details/7195345),从而接触到了EmbeddedGUI,下面就来讲一下我在lpc2294上使用EmbeddedGUI的过程。

        在http://sourceforge.net/projects/embeddedgui/files/可以找多最新版本的EmbeddedGUI,我下载了version 0.6.2压缩包,解压后共有5个子目录,code目录中是EmbeddedGUI的源码;designer目录中是一个UI设计器,可以通过这个UI设计器比较直观的设计需要的界面,然后可以设计器会根据设计的界面产生一个源码的目录,在我的应用中就是直接使用了该源码目录夹中的源代码;document目录中是EmbeddedGUI说明手册及License;example目录中是EmbeddedGUI应用的例子;utility目录中存放了2个很实用的工具,EBitmapCreator和SerialCursor。

        我的目标板使用lpc2294芯片并外扩了256K ram,液晶使用的是RA8806控制芯片320×240分辨率的单色LCD,开发环境是eclipse + winarm,因为EmbeddedGUI源码中使用了c++,所以在eclipse中建立项目时要选择c++ project,然后在project中添加一个src目录存放源码文件,在src目录下我又新建了一个gui目录来存放EmbeddedGUI源码,在winarm中找了一个lpc2138_uart0_irq的例子,修改了硬件配置和ld脚本文件,在main主程序sysInit()中添加了EmbeddedGUI初始化函数EG_EmbeddedGUI_Init(),EmbeddedGUI需要一个定时中断来调用EG_EmbeddedGUI_Redraw()函数来刷新屏幕数据,main主程序是一个500ms的定时循环,所以我把定时时间改为30ms,把EG_EmbeddedGUI_Redraw()直接加到了主循环里定时刷新屏幕。由于EmbeddedGUI没有提供RA8806的驱动,所以在EGUIMacro.h中#define EG_RA8806_LCD_DRIVER,在IO.h中增加了LCD的硬件连接配置,在LCDDriver.cpp中实现了控制RA8806芯片的EG_LCDInit,EG_LCDClearScreen,EG_LCDFlushBuffer 这3个函数。在编译项目前修改编译器设置,在GCC C++ linker 中加入-nostartfiles,否则在编译时会提示_mainCRTStartup多重定义的错误。编译完成后将hex文件写入目标板,液晶屏上显示设计器中设计的界面。最后上效果图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值