你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】一步一步使用 STemWin 在 STM32 上开发一个简单的应用

[复制链接]
STMCU小助手 发布时间:2022-2-18 22:51
问题:
STemWin 是 ST MCU 为工程师提供的免费的 GUI 开发库,而且这个库是集成并发布在 STM32CubeFW对应的软件包 :
RN10J1DXQ)~D)C0FY8SXQHX.png

其中不但包含了库文件,而且包含了使用 STemWin 的文档 API 介绍,PC 端的处理工具(如图片转换工具、字体转换工具等):

JC7]J{41K`8LOV19`76%VZL.png

由于 STemWin 提供的文档只是比较详细的介绍了这些 API 使用功能,但是对于初次接触和使用STemWin 开发应用的工程师来说希望有一个简单的类似一个 helloworld 的小应用来简述一下整个开发过程.

调研:
比如我们需要使用 STemWin 来在 STM32F429Discovery 评估板上实现一个 smartwatch 的简单应用:


0@VR{)1({JICMI5_SZ4KOQH.png

我们需要准备的资源有:

MU4Q8`XGB@%8$RROVF5D~0W.png

以下是开发的步骤:
1. 使用 GIMP 图像处理工具将图像裁剪合适大小

801%E@`KO3K[%QMK]G_T_LL.png

2. 将 png 格式图像转换为 bmp 图像

CW@47)AOM(%W{@4ENY}Y~(L.png

3. 使用 BmpCvtST 软件将 bmp 转换为 c 文件

]J(DP8GK110{$T5QROE939N.png

4. 将 c 文件加入到 STM32CubeFW 的 STemWin 例程中

2TPTVKU]LE%{FEJ2`5OTCR0.png

5. 编写应用程序

VYUVA3F0QCL36H{ALRS1{E5.png

   6.调试运行

)OILA9PO5DX(J~L5[KBC)BK.png


结论:
   通过以上简单的 6 个步骤就可以使用 STemWin 提供的 GUI 库和工具软件来生成一个简单的应用了,是不是很方便使用呢,而且 STemWin 是免费的哦;-)

处理:
   另附参考代码 :
  1.    extern GUI_CONST_STORAGE GUI_BITMAP bmbackground;
  2.    extern GUI_CONST_STORAGE GUI_BITMAP bmboy1;
  3.    extern GUI_CONST_STORAGE GUI_BITMAP bmboy2;
  4.    extern GUI_CONST_STORAGE GUI_BITMAP bmlogo;
  5.    extern GUI_CONST_STORAGE GUI_BITMAP bmsport;
  6.    extern GUI_CONST_STORAGE GUI_BITMAP bmwatch;
  7.    static void smartwatch_run(void)
  8.    {
  9.    ///draw the background and delay 3s
  10.    GUI_DrawBitmap(&bmbackground, 0,0);
  11.    GUI_Delay(3*1000);

  12. ///draw the stm32 smartwatch logo and delay 3s
  13. GUI_DrawBitmap(&bmlogo, 0,0);
  14. GUI_Delay(3*1000);

  15. ///draw the watch and delay 3s
  16. GUI_DrawBitmap(&bmwatch, 0,0);
  17. GUI_Delay(3*1000);

  18. ///The boy running on the playground...
  19. while(1)
  20. {
  21. GUI_DrawBitmap(&bmsport, 0,0);
  22. GUI_DrawBitmap(&bmboy1, 90,60);
  23. GUI_Delay(500);
  24. GUI_DrawBitmap(&bmsport, 0,0);
  25. GUI_DrawBitmap(&bmboy2, 90,60);
  26. GUI_Delay(500);
  27. }
  28. }
  29. /*********************************************************************
  30. *

  31. * MainTask
  32.   */
  33.   void MainTask(void) {
  34.   GUI_Clear();
  35.   GUI_SetFont(&GUI_Font20_1);
  36.   #if 0
  37.   GUI_DispStringAt("Hello world!", (LCD_GetXSize()-100)/2, (LCD_GetYSize()-
  38.   20)/2);
  39.   #else
  40.   smartwatch_run();
  41.   #endif
  42.   while(1);
  43.   }
复制代码


收藏 评论0 发布时间:2022-2-18 22:51

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版