UCGUI移植教程:详细步骤与宏定义详解
4星 · 超过85%的资源 需积分: 32 162 浏览量
更新于2024-12-31
2
收藏 27KB DOC 举报
UCGUI移植心得分享
在进行UCGUI(Univisual C Graphic Interface)的移植过程中,作者通过自己的实际操作和探索,总结出了一套实用且简洁的方法。首先,移植步骤主要包括以下几个关键点:
1. **文件整合**:将GUI文件夹和CONFIG文件夹中的所有必要文件复制到应用程序开发系统(ADS)的相应目录下。这确保了所有UCGUI所需的库和配置都能正确链接。
2. **驱动选择**:LCDDrive文件夹中仅需1335型号的驱动文件LCDSlin.c,这表明移植针对的是特定型号的液晶控制器,其命令和数据地址被定义为`COMADR`和`DATADR`,分别用于写入控制命令和数据,如:
- `COMADR(*((volatile unsigned short*)0x83000002))`
- `DATADR(*((volatile unsigned short*)0x83000000))`
3. **宏定义的重要性**:宏定义对于避免编译时的重复定义错误至关重要。例如,`LCD_WRITE_A1`和`LCD_WRITE_A0`等宏定义用来简化LCD操作,如果使用函数实现,可能会出现编译错误。因此,这些底层操作函数如`LCD_X_Write00(c)`和`LCD_X_Write01(c)`应定义为宏,而非在.h文件中作为函数。
4. **自定义GUI_X.c**:如果不使用宏定义,可以创建一个新的LCD_X.c文件,编写底层函数。但务必遵循头文件中不应包含函数的规则,以防止编译时的多重定义问题。
5. **UC/OS移植调整**:若不进行UC/OS(Univisual C Operating System)的移植,可能需要修改GUI_X_Delay()函数,将其调用的系统时间更改为非OS依赖的方式,如硬编码20毫秒。
6. **新增自定义功能**:为了适应具体控制器,可能需要添加自定义函数如`GUI_X_Log`、`GUI_X_Warn`和`GUI_X_ErrorOut`,它们分别用于记录日志、警告和错误输出。
7. **UCGUI自带驱动**:由于UCGUI已内置了针对1335控制器的LCDDriver\LCDSLin.c驱动,所以移植工作相对简单,只需要适配上述细节即可。
通过以上步骤,作者确保了UCGUI能在目标硬件上正常运行,并提供了必要的配置和定制选项,以满足特定应用的需求。移植过程中的细心处理和经验分享对其他开发者具有很高的参考价值。
426 浏览量
2012-02-23 上传
144 浏览量
2012-09-01 上传
134 浏览量
2013-01-06 上传
lockyjay2mm
- 粉丝: 0
- 资源: 2
最新资源
- jd-gui-1.6.6_java_jd-gui-1.6.6_
- jackson-module-scala:Jackson的附加模块(https:github.comFasterXMLjackson)支持Scala特定的数据类型
- libiconv-1.14.tar.gz.7z
- sencha-couchdb-extjs:Sencha ExtJS的CouchDB CRUD支持
- 课程人员
- Deep-Learning-2021-1:ICT COG学院的深度学习课程-人工智能基础课程
- printfshell
- 物流管理系统 java+sqlserver+tomcat毕业设计
- CodePathGram:CodePath 第 1 周项目
- sagofilter_chen_parral_IDl_
- Dots-and-Boxes-Game
- proyecto01
- testingSourceTree:测试源树
- ATM银行数据库系统 _acrosspu3_银行系统ATM_银行数据系统_银行数据_atm_
- 易语言-YY全自动群私密软件源码 自动内存提取YY群内成员
- 图片素材售卖网站HTML5模板是一款响应式摄影作品图片销售网站模板下载 .rar