您的位置:首页 > 产品设计 > UI/UE

UCGUI在STM32平台移植经验(无操作系统)

2015-05-25 08:48 232 查看
ucgui 移植的前提是已经具备了LCD驱动函数,已经能够实现点亮LCD屏幕,并实现画点以及获取指定点颜色值的功能。一般的显示屏供应商会提供对应的驱动函数。主要有初始化函数void LCD_Init(),屏幕画点函数 Void LCD_DrawPoint(u16 x,u16 y,u16 color),以及获取指定点颜色值的U16 LCD_ReadPoint(u16 x,u16 y)函数。移植的关键在于把这三个函数与ucgui提供的接口函数匹配。

打开GUI\LCDDriver中的LCDDummy.c文件,找到int LCD_L0_Init(void)初始化函数,LCD_L0_SetPixelIndex(int x, int y, int PixelIndex)画点函数,unsigned int LCD_L0_GetPixelIndex(int x, int y)读取颜色值函数,把LCD驱动函数填入其中,如下图:





关于LCD配置的含义的解释,需要根据所选的屏幕的大小,颜色深度做出修改。网络上有很多说明, 在此不再重复。

我在Keil uVision4中碰到的一些问题,做出记录。

编译过程中,出现. \Output\TFT触摸屏.axf: Error: L6218E: Undefined symbol exit (referred from jerror.o). 错误

在网络上搜到了一些解答,说是在编译配置中选项不能使用微库,如下图:



我去掉这个选项后,发现编译能够通过。下载到开发版中,总是不能运行,调试发现,一开始就进入了硬件错误处理中断void HardFault_Handler(void)中。

于是,我又把微库选上,进入了UCGUI/JPEG/jerror.c中,找到error_exit (j_common_ptr cinfo)函数中的exit(EXIT_FAILURE),把这行给注释掉,改用return直接返回。

再次编译,通过。下载到开发板中,能够正常运行。

(b)单色屏 配置:#define LCD_REVERSE (1)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: