ucGUI与emWin是众多嵌入式工程师编写显示界面的首选,但是随着版本的升级,对于商用GUI提出了专利费的要求,这也是国内小型企业所不愿意接受的。于是,编写了一份属于自己的独特GUI界面代码。作品采用stm32作为主MCU,驱动LCM12864进行显示。我们的任务是写自己的GUI,因此对其他外设资源要求不高。另能力仅属于中神级别,尚未炉炼至大神级别,因此我们先用单色LCM12864练手,此贴至此始终开源,供大家一起学习交流,把xlGUI丰富起来。
系统设计框图:
讲解:
1.xlGUI采用WM_Manage窗口管理器统一管理UI消息事件,用户交互消息(数据信息、按键事件等等)均通过WM_SendMessage发送至控件,由控件自行解析事件类型并响应消息;
2.整个工程中GUI_GDI是公共绘图接口,其作用是方便控件或者用户对显示屏进行绘制显示;
3.GUI_GDI统一调用GUI_Drive函数接口进行操作显存,本例程中,我们在GUI_GDI里面开辟了m_MemDev显示内存池,该内存池与显示屏显示像素一一对应,GUI_GDI所有函数默认直接操作显存池像素点。 显存刷新操作则统一由GUIDRV_DEVICE_API函数完成,用户不同类型的显示屏均可以通过编写GUI_Driver函数达到驱动显示目的。
制作成功实物图片:
说明:
作品全部使用C语言进行编写,通俗易懂,熟悉GDI界面编程的更加不会陌生。作品旨在提供小型GUI界面编程入门,并尽可能提供扩展接口,备注详细,方便各路嵌入式大神进行移植扩展维护,希望这版本GUI最终演化成能够替代ucGUI/emWin。
该项目设计来源于立创社区,设计资料仅供学习参考。