[STM32F4] 将GuiLite移植到了STM32F4开发板上

[复制链接]
5782|46
 楼主| kzlzqi 发表于 2023-10-29 01:33 | 显示全部楼层
在 MDK 工程里面导入UICode下的GuiLite.h和UIcode.cpp文件
 楼主| kzlzqi 发表于 2023-10-29 01:33 | 显示全部楼层
 楼主| kzlzqi 发表于 2023-10-29 01:33 | 显示全部楼层
我们在 main.c 文件开头添加 GuiLite 接口代码,接口代码如下:
  1. //画点函数接口
  2. void gfx_draw_pixel(int x, int y, unsigned int rgb)
  3. {
  4.     OLED_DrawPoint(x,y,rgb);
  5. }
  6. //画面函数(未使用)
  7. void gfx_draw_fill(int x, int y,int w, int q, unsigned int rgb)
  8. {
  9. }
  10. //创建一个函数指针结构体
  11. struct EXTERNAL_GFX_OP
  12. {
  13. void (*draw_pixel)(int x, int y, unsigned int rgb);
  14. void (*fill_rect)(int x0, int y0, int x1, int y1, unsigned int rgb);
  15. } my_gfx_op;
  16. extern void startHelloCircle(void* phy_fb, int width, int height, int color_bytes, struct EXTERNAL_GFX_OP* gfx_op);

  17. //设定延时函数接口
  18. void delay_ms(int milli_seconds)
  19. {
  20. HAL_Delay(milli_seconds);
  21. }
 楼主| kzlzqi 发表于 2023-10-29 01:34 | 显示全部楼层
之后在main函数中添加如下代码
  1. //传递函数指针
  2. my_gfx_op.draw_pixel = gfx_draw_pixel;
  3. my_gfx_op.fill_rect = NULL;//gfx_fill_rect;
  4. //启动画圆
  5. startHelloCircle(NULL, 128, 64, 1, &my_gfx_op);
 楼主| kzlzqi 发表于 2023-10-29 01:34 | 显示全部楼层
然后我们修改UIcode.cpp文件中的代码,添加OLED头文件,以及在UI执行函数界面处添加OLED刷新函数
 楼主| kzlzqi 发表于 2023-10-29 01:34 | 显示全部楼层
 楼主| kzlzqi 发表于 2023-10-29 01:34 | 显示全部楼层
之后在UIcode的第8行修改3D圆的参数,因为OLED大小128x64 ,所以我的配置如下:
 楼主| kzlzqi 发表于 2023-10-29 01:34 | 显示全部楼层
 楼主| kzlzqi 发表于 2023-10-29 01:34 | 显示全部楼层
配置完成后,我们关闭Use MicroLIB选项,编译代码
 楼主| kzlzqi 发表于 2023-10-29 01:34 | 显示全部楼层
 楼主| kzlzqi 发表于 2023-10-29 01:34 | 显示全部楼层
编译成功,下载代码 38978653d463ca0a28.png
 楼主| kzlzqi 发表于 2023-10-29 01:35 | 显示全部楼层
Gui移植结果
下载完成后程序复位,可以在OLED上看到Demo的示例动画。 85195653d4648e4d80.png
 楼主| kzlzqi 发表于 2023-10-29 01:35 | 显示全部楼层
一些其他的演示效果
 楼主| kzlzqi 发表于 2023-10-29 01:35 | 显示全部楼层
 楼主| kzlzqi 发表于 2023-10-29 01:35 | 显示全部楼层
 楼主| kzlzqi 发表于 2023-10-29 01:35 | 显示全部楼层
当然也有移植到小熊派开发板的。

以下三个视频来自公众号:嵌入式应用技术研究院,作者:杨源鑫

如果你有板子,赶紧拿过来试一试吧!
Clyde011 发表于 2024-2-9 07:16 | 显示全部楼层

在其他的交流电流环路都布置好后再放置
Clyde011 发表于 2024-2-9 07:16 | 显示全部楼层

在其他的交流电流环路都布置好后再放置
公羊子丹 发表于 2024-2-9 08:09 | 显示全部楼层

I2C1的时钟可以自行选择HSI或者SYSCLK
万图 发表于 2024-2-9 09:12 | 显示全部楼层

任何与多条功率线相连的功率器件要尽可能紧挨在一起,以减短连线长度
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部