[应用相关] 移植StemWin到STM32F103VET6开发板,使用0.96寸IIC屏幕

[复制链接]
 楼主| 在水一方00 发表于 2022-6-30 18:28 | 显示全部楼层 |阅读模式
本帖最后由 在水一方00 于 2022-6-30 18:31 编辑

【参考资料】

开发板:野火F103VET6指南者开发板,裸机不带操作系统。

emWin5.12中文手册,野火家资料中有。

使用0.96寸IIC屏幕,就是某宝上最常见的那种。

首先使用硬件IIc驱动屏幕显示。

cubeMX配置如下:
4080262bd7ad657652.png

 楼主| 在水一方00 发表于 2022-6-30 18:31 | 显示全部楼层

大佬写的文章:https://blog.csdn.net/z961968549/article/details/105243723/

【bilibili视频资料】:https://www.bilibili.com/video/BV16t4y117rN?p=7
 楼主| 在水一方00 发表于 2022-6-30 18:32 | 显示全部楼层
 楼主| 在水一方00 发表于 2022-6-30 18:34 | 显示全部楼层
OLED驱动底层函数,问同事要了正点原子的驱动,然后把这个函数替换一下,就可以实现简单的显示功能,最重要的是再某个位置显示一个点的函数。
 楼主| 在水一方00 发表于 2022-6-30 18:35 | 显示全部楼层
 楼主| 在水一方00 发表于 2022-6-30 18:35 | 显示全部楼层
然后移植STemWin,STemWin的版本可以在cubeMX存放包的地方找到,
3394062bd7c752498a.png
 楼主| 在水一方00 发表于 2022-6-30 18:41 | 显示全部楼层
复制需要的文件到工程中:
1777062bd7de014914.png
 楼主| 在水一方00 发表于 2022-6-30 18:42 | 显示全部楼层
 楼主| 在水一方00 发表于 2022-6-30 18:43 | 显示全部楼层
lib中文件的选择看上面的图片 ,不同的文件适应不同的平台。至于每个文件夹中文件的作用:

Config中主要是配置文件,修改以适应屏幕。
inc文件夹中是一些控件什么的。
lib中是封装好的源文件。
OS中看是否带系统来选择。
 楼主| 在水一方00 发表于 2022-6-30 18:45 | 显示全部楼层
Config配置:

【GUIConf.c文件】
  1. #include "GUI.h"

  2. /*********************************************************************
  3. *
  4. *       Defines
  5. *
  6. **********************************************************************
  7. */
  8. //
  9. // Define the available number of bytes available for the GUI
  10. //
  11. #define GUI_NUMBYTES  (30*1024)  //==============修改使用内存大小

  12. /*********************************************************************
  13. *
  14. *       Public code
  15. *
  16. **********************************************************************
  17. */
  18. /*********************************************************************
  19. *
  20. *       GUI_X_Config
  21. *
  22. * Purpose:
  23. *   Called during the initialization process in order to set up the
  24. *   available memory for the GUI.
  25. */
  26. void GUI_X_Config(void) {
  27.   //
  28.   // 32 bit aligned memory area
  29.   //
  30.   static U32 aMemory[GUI_NUMBYTES / 4];
  31.   //
  32.   // Assign memory to emWin
  33.   //
  34.   GUI_ALLOC_AssignMemory(aMemory, GUI_NUMBYTES);
  35.   //
  36.   // Set default font
  37.   //
  38.   GUI_SetDefaultFont(GUI_FONT_6X8);
  39. }

  40. /*************************** End of file ****************************/
 楼主| 在水一方00 发表于 2022-6-30 18:53 | 显示全部楼层
【GUIConf.h】

  1. #ifndef GUICONF_H
  2. #define GUICONF_H

  3. /*********************************************************************
  4. *
  5. *       Multi layer/display support
  6. */
  7. #define GUI_NUM_LAYERS            1    // Maximum number of available layers

  8. /*********************************************************************
  9. *
  10. *       Multi tasking support
  11. */
  12. #ifdef OS_SUPPORT
  13. #define GUI_OS                    (1)  // Compile with multitasking support
  14. #else
  15. #define GUI_OS                    (0)
  16. #endif

  17. /*********************************************************************
  18. *
  19. *       Configuration of touch support
  20. */
  21. #ifndef   GUI_SUPPORT_TOUCH
  22.   #define GUI_SUPPORT_TOUCH       (0)  // Support touchscreen
  23. #endif

  24. /*********************************************************************
  25. *
  26. *       Default font
  27. */
  28. #define GUI_DEFAULT_FONT          &GUI_Font6x8

  29. /*********************************************************************
  30. *
  31. *         Configuration of available packages
  32. */
  33. #define GUI_SUPPORT_MOUSE             (0)    /* Support a mouse */
  34. #define GUI_WINSUPPORT                (1)    /* Use window manager */
  35. #define GUI_SUPPORT_MEMDEV            (0)    /* Memory device package available */
  36. #define GUI_SUPPORT_DEVICES           (1)    /* Enable use of device pointers */

  37. #endif  /* Avoid multiple inclusion */
 楼主| 在水一方00 发表于 2022-6-30 18:56 | 显示全部楼层
【GUIDRV_Template.h】:对接屏幕硬件,GUI驱动,这里只将基础的画点以及读点的函数对接进去。还有其他的函数也可以对接。
 楼主| 在水一方00 发表于 2022-6-30 18:56 | 显示全部楼层
 楼主| 在水一方00 发表于 2022-6-30 19:00 | 显示全部楼层
 楼主| 在水一方00 发表于 2022-6-30 19:04 | 显示全部楼层
 楼主| 在水一方00 发表于 2022-6-30 19:05 | 显示全部楼层
这里查询像素坐标点的函数要自己实现以下,能够查到当前点的像素状态。【这里通过设置的函数数组记录,然后查询的时候从数组往外拿】
 楼主| 在水一方00 发表于 2022-6-30 19:06 | 显示全部楼层
【GUIDRV_Template.h】、
 楼主| 在水一方00 发表于 2022-6-30 19:07 | 显示全部楼层
 楼主| 在水一方00 发表于 2022-6-30 19:09 | 显示全部楼层
【LCDConf_FlexColor_Template.h】设置XY像素
3975562bd8417e2f2e.png
 楼主| 在水一方00 发表于 2022-6-30 19:10 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

581

帖子

0

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