MCU SPI屏幕还能运行如此酷的特效吗?来移植并炫耀

最近,智能汽车项目仍在添加功能和调试过程中,在后续调试完成后,本文将进行更新。

今天,我们将分享一个在Github上看到的非常有趣的GUI开源项目。

1主角简介今天介绍的主角是Github上的开源项目GuiLite,并且在代码云上也有同步,由老兄idea4good提供。

1.1 GuiLite功能(来自Code Cloud的官方网站)开源项目网站:https://github.com/idea4good/GuiLite https://gitee.com/idea4good GuiLite提供了许多运行示例,尤其是上面的示例。

2在Bear Pie(STM32)LCD(ST7789)Hello Star上的显示效果只有100多行代码,用于向开发人员展示如何使用GuiLite开发“星空”图形。

影响。

移植后产生的效果如下:Hello Molecule仅具有100多个代码行,这是基于GuiLite产生的分子运动效果。

移植成熊的效果如下:Hello Wave仅具有100多行代码,用于向开发人员展示如何使用GuiLite进行波形开发。

移植到小熊饼后的效果如下:由于官方帐户只能发布三个视频,因此三个视频在移植后看起来很流畅。

接下来,让我们看看如何将这些案例移植到熊派上。

2.1首先,请参阅官方网站提供的有关MCU的文档,以进行迁移过程:在这里,我带了之前分享的文章。

内部的演示程序已适应LCD相关功能,因此我将直接使用此演示进行移植。

本文内容如下:基于熊光强度传感器的BH1750状态机驱动程序项目升级(带有上部计算机曲线显示)以HelloStar的移植为例,根据移植文件说明:1.下载案例首先,然后将整个Uicode文件夹复制到我们的演示项目Inside:2.接下来,打开MDK Keil项目并将Uicode添加到我们的项目:3.添加文档和定义的接口所需的功能。

在添加函数之前,我们需要提供一个彩色绘图点函数,代码如下:Void LCD_Draw_ColorPoint(uint16_t x,uint16_t y,uint16_t color){LCD_Address_Set(x,y,x,y); LCD_Write_HalfWord(color);}然后添加相应的函数和结构,并在外部引用HelloStar case函数://扩展时间1ms函数void delay_ms(int ms){HAL_Delay(ms);} / *用户代码结束PFP * // *私人用户代码--------------------- ------------------------- ----------- * // *用户代码开始0 * /// RGB888将RGB565 //将GuiLite 32位颜色传输到您的LCD颜色#define GL_RGB_32_to_16(rgb)((((((unsigned int )(rgb))& 0xFF)& gt; 3)|(((((unsigned int)(rgb))& amp; amp; amp; amp; amp; amp; gt;>>> 5)| (((((unsigned int)(rgb))& amp; gt;& gt; 8))//封装LCD驱动程序:void gfx_draw_pixel(int x,int y,unsigned int rgb){/ / LCD_Fast_ DrawPoint(x,y,GL_RGB_32_to_16(rgb)); //添加颜色为LCD_Draw_Point_Color(x,y,GL_RGB_32_to_16(rgb));)的点函数,如果您的解决方案比逐个绘制像素更快,请实施该函数。

int x1,int y1,unsigned int rgb)()// UI entrystruct EXTERNAL_GFX_OP {void(* draw_pixel)(int x,int y,unsigned int rgb); void(* fill_rect)(int x0,int y0,int x1,int y1,unsigned int rgb);)my_gfx_op; extern void startHelloStar(void * phy_fb,int width,int height,int color_bytes,struct EXTERNAL_GFX_OP * gfx_op); 3.主函数中的调用代码如下:LCD_Init(); LCD_Clear(BLACK); //将屏幕清除为黑色my_gfx_op.draw_pixel = gfx_draw_pixel; my_gfx_op.fill_rect = NULL; // gfx_fill_rect; startHelloStar(NULL,240,240,2,& my_gfx_op);编译之前,请删除“使用MicroLIB”选项:接下来,成功编译,刻录程序,它将很快成功,并且屏幕将不存在!最后,通过调试,发现由于UIcode是由堆分配的,并且LCD的分辨率为240 * 240,因此我们需要调整堆区域的大小,以便程序可以正常运行。

其他情况也都是相同的移植方法,您可以自己尝试。

我已经成功移植了8个案例:在官方帐户的后台回复:Cool UI可以获得已成功移植的所有源代码和源演示项目。

过去的美好时光。

技术屋的浪漫故事-教您如何制作“ 520”字样坦白的神器。

代码很棒,但是UI界面很难看?来杨先生带你去!最近收集的开源项目专栏(不断更新,保持方向盘,方便修车)我认为这次分享的文章对您有所帮助,请随时单击[

联系方式

双信电机以“材料工艺开发技术”、“电路设计技术”、“设备开发技术”为核心技术,开发各种滤波器、电容器等电子元器件,以电力电子事业、信息通信事业为中心,提供符合客户需求的定制产品。电子零件对于我们安心、安全地过上舒适的生活是不可缺少的,今后其作用也会变大。我们将继续提供符合时代需求和客户期望的高功能电子元件,为社会发展和人们的生活做出贡献。

查看详情

在线咨询