上周,我看到杨先生分享了一篇文章“ MCU SPI屏幕还能运行如此酷的特效吗?快来移植并展示一个节目“介绍了GuiLite开源项目的移植和使用,它看起来很酷。我们也可以真正做到这一点,并制作一个简单的基于GUI的万年历以熟悉此GUI库。有关此GUI库的介绍,您可以阅读Yang Gong的文章,或在他的仓库中检查它:https://gitee.com/idea4good/GuiLite这也是一些演示图片供大家一起欣赏:移植是相对的很简单,该库不需要许多低级LCD接口:需要修改的主LCD接口是用于绘制像素的函数:此外,需要准备毫秒延迟功能以供该库使用:适配后很好,我们可以使用它提供给我们的一些接口。我们首先实现一个简单的万年历以熟悉此GUI库。这里有两种实现方法:一种是使用RTC,另一种是使用此GUI库提供的一些与时间有关的操作。我还不了解第二种方法的细节,因此我们将直接使用RTC进行实验。相关的代码项目可以通过本文末尾的方法获得。以下简要提到一些需要注意的方面:1.字体资源当我们使用纯LCD驱动程序界面显示一些字符串时,我们需要预先准备相关的字体库。同样,必须预先准备类似的东西才能使用GuiLite,这可以由工具GuiLiteToolkit.exe生成。该工具也由GuiLite的作者开发,并且还是一个开源软件。用法也很简单,只需几个简单的步骤即可生成GuiLite所需的相关代码。输入要显示的字符,设置字体,字体大小并生成代码:2.显示汉字当我们使用纯LCD驱动程序显示字符串时,通常会调用这样的接口:void& nbsp; LCD_ShowString( uint16_t& n,uint16_t& n宽度,uint16_t& nbsp;高度,uint8_t& nbsp;大小,char& nbsp; * p); void& nbsp; PutChinese_strings uint16_t& npos; Ypos,uint8_t& nbsp; * str,uint8_t& nbsp;字体库的准备工作);只需将字符串放入这些接口即可显示任何字符串。同样,GuiLite还为我们提供了类似的界面:void& nbsp; draw_string(c_surface *& nbsp; surface,& nbsp; int& nbsp; z_order,& nbsp; const& nbsp; char& nbsp; * s, & nbsp; int& nbsp; x和& nbsp; int& nbsp; y,& nbsp; const& nbsp; FONT_INFO *& nbsp; font,& nbsp; unsigned& nbsp; int& nbsp; font_color, & nbsp; unsigned& nbsp; bg_color,& nbsp; un& nbsp; int& nbsp; align_type& nbsp; =& nbsp; ALIGN_LEFT)在此操作界面中同时显示了中文和英文字符串。应该注意的是,这里显示中文字符串的方式有些不同。例如:此类的成员函数最终需要使用utf-8编码的数据。英文字符(ASCII代码字符)与utf-8编码兼容,因此转换和非传输都是相同的。但是中文不好,您必须切换它。我们可以借一些在线网站进行转让。有很多这样的网站。这是一个非常简单的界面:https://www.qqxiuzi.cn/bianma/Unicode-UTF.php xxx在这里是什么意思?实际上,这也是我们C语言的知识点之一,我们都知道
,
这些是转义字符。实际上,后跟x的十六进制数据也表示转义字符。同样,紧随其后的八进制数据也表示转义字符。只是我们平时很少使用这种知识点,而且更容易忘记。看着一张桌子,也许我们会记住:因此,实际上,有几种方法可以用C语言打印出世界问候字符串:只是我们通常使用第一种方法。在utf-8编码下,大多数汉字由3个字节表示。因此:“ xe5xb5x8cxe5x85xa5xe5xbcx8fxe5xa4xa7xe6x9dx82xe7x83xa9”代表字符串“ embedded hodgepodge”。 3.其他说明此库的GUI库需要使用标准库中的某些内容,因此您需要删除keil中的USE MicroLIB选项才能使用标准库。如果需要使用打印调试功能,通常无法使用MicroLIB重定向printf功能。您可以检查以前的注释中介绍的另一种方法:“您对串行端口打印了解多少? 》 4.演示哈哈,摇摇晃晃,停顿一秒钟。让我们看看〜5.代码工程的获取这个实验非常简单,并且移植也相对简单。你可以玩。这个开源库p