移植UCGUI的方法网上讲的很详细,大概就是三步:
1. 准备好屏的驱动函数(名字随便取, uint 即 unsigned int):
void LCD_Init(void) (屏的硬件初始化)
void LCD_DrawPoint(uint x, uint y, uint color) (在屏上(x,y)点画一个颜色为color的点)
uint LCD_GetPoint(uint x, uint y) (获取屏上点(x,y)的颜色)
2. 建好工程,把UCGUI的源码弄进去,把驱动也放进去。
3. 修改LCDDummy.c文件(有的版本是LCDTemplate.c文件)
(1)在 LCD_L0_Init 函数中调用 LCD_Init 函数
(2)把 LCD_L0_GetPixelIndex 函数的内容改成 return LCD_GetPoint(x, y)
(3)把LCD_L0_SetPixelIndex 函数的内容改成 LCD_DrawPoint(x, y, color)
最后, 修改UCGUI的一些配置
网上看了好多移植方法,(2)(3)我看到的都是直接替换。
这样移植没有什么问题,但是今天手里一块TFT屏模块(控制器ili9325),屏幕的内容一直是X镜像的,不管怎么写R3寄存器都不变。
看到UCGUI里面有几个宏定义 LCD_SWAP_XY , LCD_MIRROR_X, LCD_MIRROR_Y 。意义很明显