OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8070|回复: 32

基于STM32H743之emwin的高级应用

[复制链接]

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
发表于 2019-11-13 20:22:34 | 显示全部楼层 |阅读模式
本帖最后由 candylife9 于 2020-12-29 21:09 编辑

关于emwin,原子哥例程都是比较基础的,主要讲的基础控件的用法。最近在一个项目上用emwin做了人机交互界面,还是有一些心得,想以原子哥的阿波罗开发板(STM32H743)+7寸屏做一个经验总结。其中会涉及到万国字体的制作和使用,自定义控件的制作和使用,图片硬解码显示,嗯,就差不多这些吧,后面想到再补充,哈哈。
捕获.JPG
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2019-4-29
在线时间
14 小时
发表于 2019-11-18 10:04:54 | 显示全部楼层
回复 支持 反对

使用道具 举报

10

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
金钱
462
注册时间
2014-8-14
在线时间
129 小时
发表于 2019-11-18 15:09:18 | 显示全部楼层
来个界面图展示下
回复 支持 反对

使用道具 举报

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
 楼主| 发表于 2019-11-18 15:55:44 | 显示全部楼层
本帖最后由 candylife9 于 2019-11-18 16:07 编辑
Cindre鞡 发表于 2019-11-18 15:09
来个界面图展示下

图片涉及到公司的机密哈
回复 支持 反对

使用道具 举报

18

主题

149

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2015-11-28
在线时间
208 小时
发表于 2019-11-23 10:44:05 | 显示全部楼层
666楼主你是用的哪个版本的emwin?有开启DCache吗?原子的emwin例程没有开启DCache很多操作反应都很慢
回复 支持 反对

使用道具 举报

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
 楼主| 发表于 2019-11-23 11:17:10 | 显示全部楼层
yconnor 发表于 2019-11-23 10:44
666楼主你是用的哪个版本的emwin?有开启DCache吗?原子的emwin例程没有开启DCache很多操作反应都很慢

5.4的,开了dcache的。操作反应慢,其实瓶颈在SDRAM的带宽。
回复 支持 反对

使用道具 举报

18

主题

149

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2015-11-28
在线时间
208 小时
发表于 2019-11-23 13:41:00 | 显示全部楼层
candylife9 发表于 2019-11-23 11:17
5.4的,开了dcache的。操作反应慢,其实瓶颈在SDRAM的带宽。

你是移植的STcube里里面的那个STemWin_CM7_OS_wc16_ot_ARGB.a吗?我是移植的是5.44a版本且我用的4342的RGB屏,然后有问题的。

ListWheel硬件效果

ListWheel硬件效果

你看图中的这个我开启了DCache且在GUI_Init之前调用WM_SetCreateFlag(WM_CF_MEMDECV);然后就会出现这样糊掉的。而且这个logo显示的颜色是RB转换的。ListWheel中的字体颜色是的。但其它部分的颜色都是正常的。哪怕我直接把这个程序放到原子已移植好的例程中去也是一样的。
但我把创建标记:“储存设备”去掉就不会花屏了。不开启DCache也会好一些。我现在就好纠结啊。找不到问题所在。
你能把你移植好的模板给我一个吗?我用原子的方式安富莱的方式移植都试了不行。
我的ListWheel文件发上来给你试一下吧。看看在你那里是不是也会出现这样的问题。非常感谢。 WIDGET_ListWheel_old.rar (15.2 KB, 下载次数: 17)
回复 支持 反对

使用道具 举报

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
 楼主| 发表于 2019-11-23 15:40:11 | 显示全部楼层
yconnor 发表于 2019-11-23 13:41
你是移植的STcube里里面的那个STemWin_CM7_OS_wc16_ot_ARGB.a吗?我是移植的是5.44a版本且我用的4342的RG ...

.a和.lib我都用过,因为同样的程序,我用lib那个在mdk里编译出来,切换页面的时候屏幕偶尔会闪烁,找了好久没找到原因。后来就换了.a移植到cubeIDE下编译就没有问题了。你这个问题,我等下试试吧。
回复 支持 反对

使用道具 举报

18

主题

149

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2015-11-28
在线时间
208 小时
发表于 2019-11-23 15:53:20 | 显示全部楼层
candylife9 发表于 2019-11-23 15:40
.a和.lib我都用过,因为同样的程序,我用lib那个在mdk里编译出来,切换页面的时候屏幕偶尔会闪烁,找了好 ...

可以把你的移植好的模板给我借鉴一下吗?谢谢。
回复 支持 反对

使用道具 举报

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
 楼主| 发表于 2019-11-23 16:17:53 | 显示全部楼层
本帖最后由 candylife9 于 2019-11-23 16:22 编辑
yconnor 发表于 2019-11-23 15:53
可以把你的移植好的模板给我借鉴一下吗?谢谢。

我这里显示好像没有那个糊掉的现象,开启了WM_CF_MEMDEV的,两个listWheel都挺正常的。你可以看看是否显示屏有问题啊,用手指压一压排线的那个FPC。
006c7fa89a78be4e981f643b8dd73e0.jpg
回复 支持 反对

使用道具 举报

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
 楼主| 发表于 2019-11-23 16:21:38 | 显示全部楼层
本帖最后由 candylife9 于 2019-12-2 18:39 编辑
yconnor 发表于 2019-11-23 15:53
可以把你的移植好的模板给我借鉴一下吗?谢谢。

这是我这边做的一个页面,但是代码涉及到公司的机密,不能流出去。
回复 支持 反对

使用道具 举报

18

主题

149

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2015-11-28
在线时间
208 小时
发表于 2019-11-23 16:51:33 | 显示全部楼层
candylife9 发表于 2019-11-23 16:17
我这里显示好像没有那个糊掉的现象,开启了WM_CF_MEMDEV的,两个listWheel都挺正常的。你可以看看是否显 ...

你这是用的什么板子啊。 安富莱的么?那肯定是我移植的哪里有问题了。你是怎么移植的啊?能不能指点一下?我这里通过安富莱的方法移植也不对。真是气人啊。应该不是硬件的问题最大的可能是我移植的问题。
回复 支持 反对

使用道具 举报

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
 楼主| 发表于 2019-11-23 17:04:03 | 显示全部楼层
我用的正点原子的阿波罗开发板,芯片是STM32H743.我把工程给你吧,基于正点原子的例程测试的。

HELPER_EWMIN.rar

4.48 MB, 下载次数: 111

回复 支持 反对

使用道具 举报

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
 楼主| 发表于 2019-11-23 17:04:54 | 显示全部楼层
yconnor 发表于 2019-11-23 16:51
你这是用的什么板子啊。 安富莱的么?那肯定是我移植的哪里有问题了。你是怎么移植的啊?能不能指点一下 ...

我用的正点原子的阿波罗开发板,芯片是STM32H743.我把工程给你吧,基于正点原子的例程测试的。

HELPER_EWMIN.rar

4.48 MB, 下载次数: 47

回复 支持 反对

使用道具 举报

18

主题

149

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2015-11-28
在线时间
208 小时
发表于 2019-11-25 08:15:00 | 显示全部楼层
candylife9 发表于 2019-11-23 17:04
我用的正点原子的阿波罗开发板,芯片是STM32H743.我把工程给你吧,基于正点原子的例程测试的。

恩,好的。非常感谢你的帮助。不过我用的是.a的lib,你发我的这个移植程序我看了,不知道是不是由于操作系统的缘故还是lib没有优化的缘故,这个操作起来感觉慢很多(用手滑动ListWheel中的Item的时候)。.a的移植方式你也是基于原子的例程吗?

回复 支持 反对

使用道具 举报

18

主题

149

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2015-11-28
在线时间
208 小时
发表于 2019-11-27 13:15:01 | 显示全部楼层
楼主你好, 我看了一下这个代码里的处理,原子是开启了DCache,但是在MPU_Config里他仍然是关闭了DCache的。他在里面开启了Shareable。我在之前的哪个里面看到过这个Shareable好像也会导致不使用Cache.
而且SDRAM中他是开启了Shareable,Cacheable,Bufferable。这种配置也就是关闭DCache的。
可能我对某些地方的理解还不够深入吧。如果你有什么好的想法可以回复我一下。非常感谢。


如下图显示的是不使用DCache,可以看到显示的速度非常的慢的。

关Cache

关Cache
而这个图你可以看到显示速度还是非常的快非常的流畅的。

开Cache

开Cache





回复 支持 反对

使用道具 举报

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
 楼主| 发表于 2019-11-27 17:13:40 | 显示全部楼层
yconnor 发表于 2019-11-25 08:15
恩,好的。非常感谢你的帮助。不过我用的是.a的lib,你发我的这个移植程序我看了,不知道是不是由于操作 ...

.a是给gcc编译器的用的库,我就是把例程换了个编译环境,然后把.lib的库换成gcc的.a。
回复 支持 反对

使用道具 举报

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
 楼主| 发表于 2019-11-27 17:21:02 | 显示全部楼层
yconnor 发表于 2019-11-27 13:15
楼主你好, 我看了一下这个代码里的处理,原子是开启了DCache,但是在MPU_Config里他仍然是关闭了DCache的。 ...

我不想详细的去看他的几个存储器属性了,但是找到了可能让你疑惑的地方,你可以参考下。
捕获.PNG
回复 支持 反对

使用道具 举报

18

主题

149

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2015-11-28
在线时间
208 小时
发表于 2019-11-28 13:09:40 | 显示全部楼层
candylife9 发表于 2019-11-27 17:21
我不想详细的去看他的几个存储器属性了,但是找到了可能让你疑惑的地方,你可以参考下。

恩。好的,我看到了。谢谢!
回复 支持 反对

使用道具 举报

5

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2018-5-30
在线时间
19 小时
发表于 2019-12-2 15:21:33 | 显示全部楼层
大大是否有使用串口呢?我使用串口中断沒几次就死机,您有使用串口的経过吗?
回复 支持 反对

使用道具 举报

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
 楼主| 发表于 2019-12-2 18:38:22 | 显示全部楼层
SuperWeiII 发表于 2019-12-2 15:21
大大是否有使用串口呢?我使用串口中断沒几次就死机,您有使用串口的経过吗?

串口,DMA,USB,还开了好几个定时器中断。
回复 支持 反对

使用道具 举报

3

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2019-5-4
在线时间
45 小时
发表于 2019-12-26 10:52:42 | 显示全部楼层
不能提供进一部的信息吗
回复 支持 反对

使用道具 举报

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
 楼主| 发表于 2019-12-26 11:35:08 | 显示全部楼层
cockroachzzq 发表于 2019-12-26 10:52
不能提供进一部的信息吗

这段时间搁置暂停了
回复 支持 反对

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2019-10-21
在线时间
90 小时
发表于 2019-12-29 14:32:14 | 显示全部楼层
请问一下,控件的位图C文件你是放在哪里呢,外部SRAM,还是图片存在flash,刷新会不会慢?
回复 支持 反对

使用道具 举报

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
 楼主| 发表于 2019-12-29 17:08:36 | 显示全部楼层
xm870408 发表于 2019-12-29 14:32
请问一下,控件的位图C文件你是放在哪里呢,外部SRAM,还是图片存在flash,刷新会不会慢?

不要转换为C文件,更不要直接存图片,而是转化为.dta,然后存外部FLASH。单片机上电后再取出.dta,加载到内存中。
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2016-11-9
在线时间
6 小时
发表于 2020-6-12 10:58:18 | 显示全部楼层
123456
回复 支持 反对

使用道具 举报

9

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
322
金钱
322
注册时间
2020-7-7
在线时间
113 小时
发表于 2020-9-23 17:17:26 | 显示全部楼层
candylife9 发表于 2019-12-29 17:08
不要转换为C文件,更不要直接存图片,而是转化为.dta,然后存外部FLASH。单片机上电后再取出.dta,加载到 ...

大神有没有具体点的代码参考一下?
回复 支持 反对

使用道具 举报

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
 楼主| 发表于 2020-10-1 19:16:26 | 显示全部楼层
zxc199701 发表于 2020-9-23 17:17
大神有没有具体点的代码参考一下?

你是说那一部分?
回复 支持 反对

使用道具 举报

9

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
322
金钱
322
注册时间
2020-7-7
在线时间
113 小时
发表于 2020-10-9 09:59:06 | 显示全部楼层
candylife9 发表于 2020-10-1 19:16
你是说那一部分?

就是.dta文件存外部FLASH,单片机上电后再取出.dta,加载到内存中。这个部分的代码
回复 支持 反对

使用道具 举报

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
 楼主| 发表于 2020-10-13 21:08:16 | 显示全部楼层
zxc199701 发表于 2020-10-9 09:59
就是.dta文件存外部FLASH,单片机上电后再取出.dta,加载到内存中。这个部分的代码

代码很简单的,emwin有对应的函数可调用。你先把图片用emwin提供的工具转换成.dta,然后写个小程序,把.dta放到外部flash里面。在使用的时候,将.dta读到内存里面,然后通过emwin提供的API函数,将内存里的.dta转换为位图数据即可。
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2020-7-13
在线时间
2 小时
发表于 2020-11-25 21:49:26 | 显示全部楼层
求展示,O(∩_∩)O哈哈哈~
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2019-8-26
在线时间
2 小时
发表于 2020-11-30 18:50:42 | 显示全部楼层
3333333
回复 支持 反对

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2019-9-4
在线时间
78 小时
发表于 2020-12-18 17:58:57 | 显示全部楼层
应用起来就厉害了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 09:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表