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

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)




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值