基于STM32的uCGUI移植手册

合集下载

uCGUI在stm32内核上的移植

uCGUI在stm32内核上的移植

LCDConf.h UCGUI390a\Start\Config
此文件用于 LCD 的相关应用配置,介绍如下
#ifndef LCDCONF_H
#define LCDCONF_H
#define LCD_XSIZE
(240)
#define LCD_YSIZE
(320)
#define LCD_CONTROLLER (9320) //控制器编号
配置文件目录
GUI\ConvertMono
灰度色彩转换支持
GUI\ConvertColor
色彩转换支持
GUI\Core
核心文件
GUI\Font
字体文件
GUI\JPEG
JPEG 格式图像显示支持
GUI\LCDDriver
LCD 驱动文件
GUI\MemDev
存储设备支持
这是今年暑假移植的,刚刚翻译完 uC/OS-III 用户手册,并移植了
uC/OS-III 到 stm32 处理器上,我就想把 uC/GUI 也放到网上去,希望
能帮到大家。
——屈环宇
——2011 年 11 月 6 号晚
Void LCD_MyInit(); 注意 LCD 的初始化函数名不能用 LCD_Init(); uC/GUI 中已有如此定义的 函数,会导致重定义。 接口函数的设计是跟处理器和 LCD 相关的,在移植 uC/GUI 前必须完成以 上 3 个 函 数 的 设 计 , 即 能 用 LCD_MyInit() 实 现 LCD 的 初 始 化 , LCD_ReadPoint(u16 x,u16 y)返回对应点的颜色,LCD_DrawPoint(u16 x, u16 y, u16 color)在 LCD 上显示对应点的颜色。

基于STM32的UCGUI移植解析(新手入门)

基于STM32的UCGUI移植解析(新手入门)
UCGUI 移植初级解析
-----------------如何建立一个简单的 UC/GUI 工程
仅供像我这样的新手学习 UCGUI 使用
做 UCGUI 移植,首先要选择好自己硬件平台,UCGUI 源码,液晶的底层驱 动。关于硬件和 GUI 源码(我选的源码 3.90 版,原子 STM32MINI 开发板)不 必多说。其次,液晶的底层驱动函数得要好好准备,这可是直接和 GUI 源码打 交道的。
(7) 修改:LCDDriver / LCDDummy.c 文件 方法:在这里面添加几个函数,关于这几个函数就是我在开始列举
的几个函数 LCD_ReadPoint(u16 x, u16 y);//读取点坐标 LCD_SetPoint(u16 x, u16 y, u16 color );//画点 你的函数也许不是这个名字哦,大家不要照搬,这是你自己的驱动函数, 在哪里添加这两个函数呢,不要着急,听我来说,
还有一个问题,网上有人说触摸用不到,可以不用添加,然后字体也只
添加几个用得到的,我的意见是:全部添加,避免难以修改的 KEIL 警告, 这点很重要,我是新手,我很清楚怎么过来的,呵呵呵。
(4):文件添加完了,还有一步呢,还要在添加路径。点击魔术棒,出现一 个选项卡,点击 C/C++,在 Include Paths 里包含文件路径,所有文件的都 要包进来哦。能玩移植的朋友们,我相信(3)(4)两步对你们来说不难。
(2):复制 源码/Sample/GUI_X 文件夹下的 GUI_X.c 文件,粘贴到工程 模板下的 Config 里; 图片指示:
(3):打开 KEIL 工程(事先准备好的),KEIL 界面左边有个 Project 视窗, 在 Target1 单击右键,出现一个选项卡,在 Groups 里创建各文件,然后依 次 Add Files,即添加.c .h 文件,这里要着重说明:添加文件的时候,尤 其是 GUI 源码,文件类型选择 ALL Files(系统默认.c 文件),就是为了添 加.h 文件,这一点很重要。举个例子吧,在 Config 文件夹下要添加 GUI_X.c GUIConf.h GUITouch.h LCDConf.h。

奋斗STM32开发板基于ucos2.86a ucGUI3.90的2.4G通信模块NRF24L01例程手册

奋斗STM32开发板基于ucos2.86a ucGUI3.90的2.4G通信模块NRF24L01例程手册

奋斗版 STM32 开发板例程手册———基于 ucOSII ucGUI 的 2.4G 无线通信模块 NRF24L01+例程手册基于 ucOSII ucGUI 的 2.4G 无线通信模块 NRF24L01+例程手册嵌入式实时操作系统 uCosII 是由美国工程师 Jean brosse 所创,它在中国的流行源 于那本被邵贝贝引进翻译的著名书籍《嵌入式实时操作系统 uCos-II》 ,这本书是学习 ucosII 的宝典,虽然很厚,但理解了关键概念,再结合实际应用例程,还是很容易看懂的。

uCosII 通过了美国航天管理局(FAA)的安全认证,可以用于飞机、航天器与人性命攸关的控制系 统中。

也就是说,用户可以放心将 uCosII 用到自己的产品中, ucGUI 也是 Micrium 公司的 产品, 在本例程里使用了 ucGUI3.90 版本,它为嵌入式应用提供了功能强大的图形用户接 口,使得用户在开发具有人机界面的应用时,可以很方便做出复杂精致的用户显示界面。

并 提供了交互的接口。

uCOSII 特点:可移植性:uCosII 源码绝大部分是用移植性很强的 ANSI C 写的。

与微处理硬件相关的部分是用汇编语言写的。

uCOS 可以在 绝大多数 8 位、16 位、32 位以及 64 位处理器、微控制器及数字信号处理器(DSP)上运行。

可裁剪性:可以通过开关条件编译选项,来定义哪些 uCosII 的功能模块用于用户程序,方便控制代码运行所占用的空间及内存。

可剥夺性:uCOSII 是完全可剥夺型的实时内核,它总是运行处于就绪状态下的优先级最高的任务。

多任务:uCOSII 可以管理 64 个任务,每个任务对应一个优先级,并且是各不相同。

其中 8 个任务保留给 uCOSII。

用户的应用 程序可以实际使用 56 个任务。

可确定性:绝大多数 uCosII 的函数调用和服务的执行时间具有可确定性,也就是说用户总是能知道函数调用与服务执行了多长 时间。

ucos基于stm32上的移植

ucos基于stm32上的移植

ucos-ii和ucgui基于stm32上的移植uc/os-ii移植笔记os_cpu.h与编译器相关的数据类型typedef unsigned char BOOLEAN;typedef unsigned char INT8U; /* Unsigned 8 bit quantity */ typedef signed char INT8S; /* Signed 8 bit quantity */ typedef unsigned short INT16U; /* Unsigned 16 bit quantity */ typedef signed short INT16S; /* Signed 16 bit quantity */ typedef unsigned int INT32U; /* Unsigned 32 bit quantity */ typedef signed int INT32S; /* Signed 32 bit quantity */ typedef float FP32; /* Single precision floating point*/ typedef double FP64; /* Double precision floating point */ typedef unsigned int OS_STK; /* 堆栈类型为32位 Each stack e ntry is 32-bit wide */typedef unsigned int OS_CPU_SR; /* Define size of CPU status r egister (PSR = 32 bits) */与ARM 处理器相关的代码#define OS_CRITICAL_METHOD 3 //进入临界段的方法#if OS_CRITICAL_METHOD == 3#define OS_ENTER_CRITICAL() {cpu_sr = OS_CPU_SR_Save();} //关中断#define OS_EXIT_CRITICAL() {OS_CPU_SR_Restore(cpu_sr);} //开中断#endif#if OS_CRITICAL_METHOD == 3OS_CPU_SR OS_CPU_SR_Save(void);void OS_CPU_SR_Restore(OS_CPU_SR cpu_sr);#endifvoid OSCtxSw(void);void OSIntCtxSw(void);void OSStartHighRdy(void);设置堆栈的增长方向#define OS_STK_GROWTH 1 /*堆栈由高地址向低地址增长*/OS_CPU_C.C用C 语言编写六个操作系统相关的函数OS_STK *OSTaskStkInit ( void (*task)(void *p_arg),void *p_arg,OS_STK *ptos,INT16U opt){OS_STK *stk;(void)opt; /* 'opt' is not used, prevent warning */stk = ptos; /* Load stack pointer */ /* Registers stacked as if auto-saved on except ion */*(stk) = (INT32U)0x01000000L; /* xPSR */*(--stk) = (INT32U)task; /* Entry Point */*(--stk) = (INT32U)0xFFFFFFFEL; /* R14 (LR) (init value will caus e fault if ever used)*/*(--stk) = (INT32U)0x12121212L; /* R12 */*(--stk) = (INT32U)0x03030303L; /* R3 */*(--stk) = (INT32U)0x02020202L; /* R2 */*(--stk) = (INT32U)0x01010101L; /* R1 */*(--stk) = (INT32U)p_arg; /* R0 : argument *//* Remaining registers saved on process stac k */*(--stk) = (INT32U)0x11111111L; /* R11 */*(--stk) = (INT32U)0x10101010L; /* R10 */*(--stk) = (INT32U)0x09090909L; /* R9 */*(--stk) = (INT32U)0x08080808L; /* R8 */*(--stk) = (INT32U)0x07070707L; /* R7 */*(--stk) = (INT32U)0x06060606L; /* R6 */*(--stk) = (INT32U)0x05050505L; /* R5 */*(--stk) = (INT32U)0x04040404L; /* R4 */return (stk);}void OSTaskCreateHook (OS_TCB *ptcb) {ptcb=ptcb;//防止编译时出现警告 }void OSTaskDelHook (OS_TCB *ptcb) { ptcb=ptcb;//防止编译时出现警告 } void OSTaskSwHook (void)void OSTaskStatHook (void)void OSTimeTickHook (void)后5 个函数为钩子函数,可以不加代码。

STM32自学笔记之uCGUI移植总结

STM32自学笔记之uCGUI移植总结

uCUI移植总结做了两个星期终于把gui搞通了,现将移植方法总结如下,仅供学习交流之用。

2014/8/23一、uCGUI移植步骤1、uCGUI及TFT驱动文件准备(1)将TFT驱动文件ili9320.h、ili9320.c 及其字体文件ili9320_font.h 复制至keil 工程模板的文件夹中;(2) 准备好uCGUI源文件(本例使用的版本3.90a),将START 文件夹下的GUI 文件夹全部复制到keil 工程模板的文件夹中;再将START 文件夹下的Config 文件夹复制至GUI 文件夹下;最后将Sample 文件夹下GUI_X 中的GUI_X.c 复制到Config 文件夹中。

最终文件结构如图1-1所示:图1-12、添加文件至工程,文件目录结构组如图2-2示:图2-1在添加文件时应注意uCGUI下除了gui_config 下需要添加所有的.h 头文件外其余所有均不需要添加头文件;图2-23、GUI配置(1)G UIConf.h配置:#define GUI_OS (0) /*编译多任务支持#define GUI_SUPPORT_TOUCH (0) /* 触屏支持*/#define GUI_SUPPORT_UNICODE (1) /*支持ASCII/UNICODE码*/ #define GUI_DEFAULT_FONT &GUI_Font6x8 /*初始化字体大小*/#define GUI_ALLOC_SIZE 5*1024 /*开辟动态空间大小*/图3-1注意:动态空间受芯片容量大小制约,不可开辟过大,否则报错图3-2(2) LCD 相关文件配置:LCDConfig.h 的配置#define LCD_XSIZE (320)#define LCD_YSIZE (240) /*x,y方向像素设置*/#define LCD_BITSPERPIXEL (16) /*像素位数*/#define LCD_CONTROLLER 9320 /*LCD驱动器型号*/图3-3继续修改第110行#define LCD_INIT_CONTROLLER() ili9320_Initializtion()并将其后的语句注释掉。

基于STM32F103移植uCGUI详细说明

基于STM32F103移植uCGUI详细说明

STM32平台移植uCGUI详细说明v1.0硬件平台:盘古UE-STM32F103开发板软件平台:RVMDK_v4.20 + uCOS-II_v2.86 + StmLib_v3.5 + uCGUI_v3.9联系方式:淘宝店铺:文档作者:合嵌电子科技有限公司uCGUI是一种嵌入式应用中的图形支持系统.它设计用于为任何使用LCD图形显示的应用提供高效的独立于处理器及LCD控制器的图形用户接口,它适用单任务或是多任务系统环境, 并适用于任意LCD控制器和CPU下任何尺寸的真实显示或虚拟显示。

它的设计架构是模块化的, 由不同的模块中的不同层组成, 由一个LCD驱动层来包含所有对LCD的具体图形操作, uCGUI可以在任何的CPU上运行, 因为它是100%的标准C代码编写的。

uCGUI能够适应大多数的使用黑白或彩色LCD的应用, 它提供非常好的允许处理灰度的颜色管理.还提供一个可扩展的2D图形库及占用极少RAM的窗口管理体系.移植准备本文档基于盘古STM32F103开发板进行uCGUI的移植实验,移植的软件基础为RVMDK_v4.20 + uCOS-II_v2.86 + StmLib_v3.5。

具体uCOS-II的移植过程请参见文档《STM32平台移植uCOS-II详细说明》,在移植最后,将通过uCOS-II创建进程运行uCGUI自带DEMO代码,以熟悉其运行流程。

1. 打开盘古UE-STM32F103光盘中的基础例程:27_uCOS-II移植由于此例程已经移植完成uCOS-II_v2.86,因此直接在此基础移植就可以,此例程文件结构如下:2. 下载uCGUI_v3.9源码解压后,有如下文件结构其源代码主要在start文件夹下,Sample是官方制作的一个Demo例程,我们一会再移植的过程中,需要用到里面的文件,这儿跳过,以下是对start作出简介:3.这3关于1.2.3. 在4. 对例程的工程名和输出文件名等进行相应的修改。

STM32如何移植uCGUI,看这里!

STM32如何移植uCGUI,看这里!

STM32 如何移植uCGUI,看这里!
第一部分:在UCGUI 移植之前
在移植之前,首先要了解在网上下的UCGUI 3.98 源码的文件结构是。

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

Start 文件夹目录内容:
Config,配置文件;。

基于STM32嵌入式系统的uCGUI移植与实现

基于STM32嵌入式系统的uCGUI移植与实现

图 1 STM3在 STM32 处理器与 FY70 - 8048 - 65K LCD 控制器 上移植 UCGUI 的第一步工作是对配置头文件的修改, 根据硬件电路的连接, 以及所连接的 LCD 控制器的具 体情况, 修改配置头文件的相关内容 。具体如下: GUIConf. h 文件用于配置 UCGUI 自身: define GUI_OS ( 1 ) / * 支持多任务操作系统( UCOSII) * / define GUI_SUPPORT_TOUCH ( 1 ) / * 支持触摸屏( 需窗口管理器的支持) * / define GUI_SUPPORT_UNICODE ( 1 ) / * 支持 UNICODE 字符串* / define GUI_DEFAULT_FONT &GUI_Font6x8 / * 定义默认字体 * / define GUI_ALLOC_SIZE 5000 / * 为窗口管理器及内存设备分配的 RAM * / define GUI_WINSUPPORT 1 / * 窗口管理器有效 * / define GUI_SUPPORT_MEMDEV 1 / * 内存设备有效 * / define GUI_SUPPORT_AA 1 / * 抗锯齿有效 * / LCDConf. h 文件用于配置 LCD 控制器: define LCD_XSIZE ( 800 ) / * 定义 LCD 屏幕宽度 * / define LCD_YSIZE ( 480 ) / * 定义 LCD 屏幕高度 * /
[3 ]

1. 2 目录结构 uCGUI 图形接口采用源代码方式提供, 理解其目录 结构, 对于完成 UCGUI 图形接口的移植是非常重要的 。 uCGUI 图形接口由 Config 配置目录和 LIB 库函数 目录组成 。Config 配置目录中包括 3 个配置头文件, 分 LCD 控制器和触摸 别用于配置 uCGUI 图形接口自身 、 LCDConf. h、 GUITouchConf. h 。 屏, 文件名为 GUIConf. h 、 LIB 库函数目录中又分为多个子目录, 用于实现核 LCD 驱动程序 、 调色板 、 触摸屏驱动程序 、 窗口控件 、 心、
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
芯嵌 stm32

STMI 移植手册(无 OS)
Revision V1.0
( 2013-08-05 )
Copyright © 2009-2014 福州芯嵌工作室 ALL rights reserved
1
芯嵌 stm32

Copyright © 2009-2014 福州芯嵌工作室 ALL rights reserved
5
芯嵌 stm32

芯嵌 STM32 用户手册修订记录
日期
版本 修改章节 修改描述
2013-08-05 1.00
全部
创建
作者 51smt32
Copyright © 2009-2014 福州芯嵌工作室 ALL rights reserved
本手册硬件平台是芯嵌 STM32 开发板,软件平台为 MDK3.8 版 本,使用 ST 官方固件库 V3.5 版以及 uC/GUI 源码 3.90 版。详情参 考芯嵌 stm32 开发板光盘,也可在芯嵌 stm32 官网下载获取。后续 会继续推出一系列提高型的教程,欢迎大家在我们论坛以及 QQ 群讨 论交流,一起进步。这里建议,大家提出的问题,越详细具体越好, 这样越有利于其他网友帮助回答问题。
版权声明
本手册版权归属福州芯嵌电子工作室(以下简称“芯嵌”) 所有,并保留一切权力。非经芯嵌同意(书面形式),任何 单位及个人不得擅自摘录本手册部分或全部内容,违者(我 们)公司将追究其法律责任。
Copyright © 2009-2014 福州芯嵌工作室 ALL rights reserved
2
芯嵌 stm32
6
芯嵌 stm32

目录
内容提要...........................................................................................................................................3 前 言.................................................................................................................................................4 手册的约定与更新........................................................................................................................... 5 目录...................................................................................................................................................7 第一章 准备工作.............................................................................................................................8 1.1 uC/GUI 源码获取....................................................................................................................... 8 1.2 集成开发环境 MDK..................................................................................................................8 1.3 硬件平台....................................................................................................................................8 1.4 J-Link 仿真器............................................................................................................................. 9 第二章 uC/GUI 介绍........................................................................................................................9 2.1 uC/GUI 特点............................................................................................................................... 9 2.2 uC/GUI 源码结构.................................................................................................................. 10 第三章 uC/GUI 移植.......................................................................................................................13 3.1 uC/GUI 移植思路..................................................................................................................... 13 3.2 uC/GUI 移植全跟踪................................................................................................................. 14 第四章 uC/GUI 的使用..................................................................................................................22 4.1 uC/GUI 常见 API 介绍.............................................................................................................22 4.2 制作自己的图形界面.............................................................................................................. 23 5 参考文献.....................................................................................................................................24 6 附 录...........................................................................................................................................24 6.1 ILI9341 初始化代码.................................................................................................................24
Copyright © 2009-2014 福州芯嵌工作室 ALL rights reserved
7
芯嵌 stm32

第一章 准备工作
为了更方便进行 uC/GUI 图形界面移植与编码,请务必认真对待如下工作。
1.1 uC/GUI 源码获取
本文档使用 uC/GUI 3.90 版本源码,请读者自行获取。也可以通过芯嵌 stm32 官网获取,链接:
本手册并非高手所写,相反,它非常适合刚刚接触 STM32 的初 学者学习 —— 只要读者具备 STM32 最基本的编码知识(比如 IO 口点灯控制和 LCD 初始化等),我们就有足够的信心来协助您一起完 成 uC/GUI 移植。同时,它也可作为嵌入式培训教材参考。
Copyright © 2009-2014 福州芯嵌工作室 ALL rights reserved
芯嵌 stm32 配套屏,朝上(面朝读者),上面是字符“2.8 TFT(320*240)”, 下面是插针(座)。此时,左上角是坐标原点(0, 0)。X 坐标,表示从左上角开始, 从左到右的列(240 列),Y 坐标,表示从左上角开始,从上到下的行(320 行)。
约定 3
虽然“文件夹”与“目录”是两个概念,但本文档中所提到的“文件夹”与 “目录”视为同一个意思。

内容提要
本手册较为详细地介绍如何基于 STM32 系列处理器进行 uC/GUI 界面的设计与编程(无操作系统 os 移植),使得 STM32 初学者对液 晶屏的编程不再停留在简单的字符显示,而是更进一步考虑如何 DIY 自己的图形界面。
相关文档
最新文档