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

STM32 GUI高阶培训之实验二

[复制链接]
anobodykey 发布时间:2018-7-22 15:03
接上篇:STM32 GUI高阶培训之实验一


主机环境:Windows 7 SP1开发环境:MDK5.25
库版本:STM32Cube_FW_F7_V1.9.0
CubeMX版本:4.25.1完成实验一后,实验二就水到渠成了,在GUI Builder中添加两个图片控件,分别来存放背景图和蝴蝶图,这里我们需要把图片素材转成c代码形式,用到的工具是BmpCvtST.exe把背景图拖到该工具中,点击保存,选择c文件格式,这里需注意,格式要选为如下格式:
5.JPG
蝴蝶图的存储格式如下:
6.JPG
我们会生成5个c文件,如下:
7.JPG
把这5个源文件添加到工程中,此外还需在WindowDLG.c中引用这5个图片数据,如下:
  1. // USER START (Optionally insert additional defines)
  2. extern GUI_CONST_STORAGE GUI_BITMAP bmbackground;
  3. extern GUI_CONST_STORAGE GUI_BITMAP bmbutterfly_blue;
  4. extern GUI_CONST_STORAGE GUI_BITMAP bmbutterfly_green;
  5. extern GUI_CONST_STORAGE GUI_BITMAP bmbutterfly_pink;
  6. extern GUI_CONST_STORAGE GUI_BITMAP bmbutterfly_yellow;
  7. // USER END
复制代码
在_cbDialog接口中,我们把两个图片控件的位图设置为我们所生成的背景和蝴蝶蓝
8.JPG
由于需要每隔1s重绘蝴蝶控件,我们还需要一个蝴蝶的索引值,如下:
  1. hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_1);
  2. if(butterfly_idx == 0)
  3. {
  4.   IMAGE_SetBitmap(hItem, &bmbutterfly_green);
  5. }
  6. else if(butterfly_idx == 1)
  7. {
  8.   IMAGE_SetBitmap(hItem, &bmbutterfly_pink);
  9. }
  10. else if(butterfly_idx == 2)
  11. {
  12.   IMAGE_SetBitmap(hItem, &bmbutterfly_yellow);
  13. }
  14. else if(butterfly_idx == 3)
  15. {
  16.   IMAGE_SetBitmap(hItem, &bmbutterfly_blue);
  17. }
  18. butterfly_idx += 1;
  19. butterfly_idx %= 4;
复制代码
由于没有使用OS,1s采用的是延时方式,直接delay的,大体上代码就完成了,编译,下载固件到板卡中就可以看到我们所需要的效果了
P80722-143806_20180722144200.gif
如果后续还想做更绚丽的GUI就要细看STemWin的手册了,这里只是带你进入STemWin的大门。
最后还是要感谢ST为我们带来了更加强劲的MCU和更加完善的软件框架
收藏 评论1 发布时间:2018-7-22 15:03

举报

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