OpenEdv-开源电子网

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

STM32F429IIT6+STemwin+SDRAM+LTDC

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
26
金钱
26
注册时间
2014-9-7
在线时间
0 小时
发表于 2014-9-12 22:01:23 | 显示全部楼层 |阅读模式
最近做了一个STM32F429IIT6(176PIN)的板子。
移植了STemwin GUI.折腾了我一个星期。总算完成。
LCD : 3.5寸的TFT屏
驱动 :MCU自动的LTDC(888模式),也就是24位。
GUI  :STemwin 5.22
环境 :IAR 7.10
 
移植花了1两天。移植上去以后发现问题多多。老是跳到硬件错误。运行DEMO,跑不了2个界面就卡主。
一直在找问题。修修补补。今天终于弄好。
1. 帧缓存用的是SDRAM。视频缓存如果也用SDRAM的话,很容易就卡住。不如内部RAM跑的欢畅。不过显示效果要好的多。因为缓存大嘛。
2. 设置的堆栈如果过小就很容易出现硬件错误。默认是 STACK = 0x400 BYTE HEAP = 0x200。要改大点。
    我主要就是卡在这边。设置成 STACK = 0x2000 BYTE HEAP = 0xe00。跑所有DEMO几乎没问题,除了一个SPEEDOMETER。
3. 关于层的问题。因为默认是1层的。如果要改为2层的。特别注意要先选定层1。要不然什么都不显示。
   GUI_SelectLayer(1); 根据DATASHEET.层2是在最上面的。它的尺寸如果和屏幕一样的。那层1和背景都会被它覆盖。这里说的是LTDC的层。
   所以要选择层2绘制。(GUI里面 0- 层1 ,1- 层2)。
4. 关于触摸的问题。我看了正点原子和别人写的。都挺好。不过我还是自己根据我软件的架构写了一个。
    采用5ms定期采集,根据PEN中断。
    没有采用这几个函数。因为我觉得不太透明。
    void GUI_TOUCH_X_ActivateX(void);
    void GUI_TOUCH_X_ActivateY(void);
    int  GUI_TOUCH_X_MeasureX (void);
    int  GUI_TOUCH_X_MeasureY (void);
    采用的是这个函数。
    static GUI_PID_STATE TpState;
    GUI_TOUCH_StoreStateEx(&TpState);
    这是记录最终坐标和触摸状态的结构体。原型如下:
    typedef struct {
    int x,y;   //当前坐标
    U8  ressed;//触摸状态
    U8  Layer;//层
    } GUI_PID_STATE;
    有触摸时,把左边和状态存入这个结构体。没有触摸时,坐标为-1。
    经过这么处理后,就很容易有单点触摸和拖拽功能。
 
就先说这么多。后面再总结。

Project.rar

24.58 MB, 下载次数: 8248

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2014-9-12 22:54:16 | 显示全部楼层
恭喜恭喜啊,方便的话把视频贴出来
开往春天的手扶拖拉机
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-9-12 22:55:46 | 显示全部楼层
谢谢分享。。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2012-11-9
在线时间
13 小时
发表于 2014-9-13 16:41:12 | 显示全部楼层
请问一下,STEMWIN里面的0层,是不是只能填充颜色,而无法显示文字等等
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
26
金钱
26
注册时间
2014-9-7
在线时间
0 小时
 楼主| 发表于 2014-9-16 15:20:18 | 显示全部楼层
回复【4楼】gongcsf:
---------------------------------
我个人理解是:
  基于STM32 LTDC 下的STemwin. 
Layer0 = LTDC_Layer1,
Layer1 = LTDC_Layer2,
所以Layer0和Layer1一样是可以显示文字等等的。
只有LTDC的背景层是只能填充底色。
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2012-11-9
在线时间
13 小时
发表于 2014-9-17 15:14:17 | 显示全部楼层
我的STEMWIN移植好了。可是LAYER0只能显示背景色,无法显示文字。

LAYER1显示文字并设置成透明的情况下,可以看到LAYER0的背景色。

你能试试看吗。谢谢
回复 支持 反对

使用道具 举报

24

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2014-3-6
在线时间
23 小时
发表于 2014-9-28 14:06:09 | 显示全部楼层
一直想用 F429配合一个3.5寸的屏,不知楼主采用的是哪个屏,好买到不?
回复 支持 反对

使用道具 举报

2

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2012-7-23
在线时间
0 小时
发表于 2014-11-11 16:07:10 | 显示全部楼层
厉害 超赞 感谢
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2014-11-12
在线时间
2 小时
发表于 2014-11-12 19:44:23 | 显示全部楼层
st的脚复用不灵活,如果只是lcd,ram,flash,100pin够了,ram flash还要复用90Mhz。现在a8的处理器也不贵。谢谢lz分享。
回复 支持 反对

使用道具 举报

14

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2012-11-20
在线时间
17 小时
发表于 2014-11-30 01:30:42 | 显示全部楼层
您好  请问如果我想接成RGB888模式,那么 RGB对应的引脚如何确定,看到datasheet上有很多重复的,比如PG10既是G3又是B2,其它的也有这种情况,那么PG10应该接在G3还是B2引脚上?  谢谢您
成功属于勤奋者
回复 支持 反对

使用道具 举报

39

主题

137

帖子

3

精华

高级会员

Rank: 4

积分
802
金钱
802
注册时间
2012-9-21
在线时间
31 小时
发表于 2015-2-6 19:58:07 | 显示全部楼层
回复【5楼】lenyound:
---------------------------------
3.5寸屏是啥型号?
回复 支持 反对

使用道具 举报

3

主题

548

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1383
金钱
1383
注册时间
2015-2-3
在线时间
197 小时
发表于 2016-2-16 20:21:46 | 显示全部楼层
太感动了把官方例程移植过来,折腾了几天,一直没有效果。结果看了楼主的加上了GUI_SelectLayer(1); ,一下子就好了。
回复 支持 反对

使用道具 举报

16

主题

189

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1296
金钱
1296
注册时间
2013-8-27
在线时间
503 小时
发表于 2016-8-16 10:45:37 | 显示全部楼层
yyx112358 发表于 2016-2-16 20:21
太感动了把官方例程移植过来,折腾了几天,一直没有效果。结果看了楼主的加上了GUI_SelectLayer(1); , ...

兄弟能不能把你的LCD屏驱动放出来给我参考下,我现在有用到
回复 支持 反对

使用道具 举报

3

主题

548

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1383
金钱
1383
注册时间
2015-2-3
在线时间
197 小时
发表于 2016-8-16 19:29:16 | 显示全部楼层
本帖最后由 yyx112358 于 2016-8-16 19:34 编辑
潜龙探渊 发表于 2016-8-16 10:45
兄弟能不能把你的LCD屏驱动放出来给我参考下,我现在有用到

只是LCD的还是EMWIN的?我因为是用的官方F429DISCOVERY开发板,所以LCD直接用的官方例程
F429 LCD驱动.rar (25.32 KB, 下载次数: 828)
回复 支持 反对

使用道具 举报

16

主题

173

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2441
金钱
2441
注册时间
2014-11-5
在线时间
348 小时
发表于 2016-8-18 09:36:33 | 显示全部楼层
对于小白来说,不上电图根本就看不懂你在说啥,楼主上点儿美图吧!!
回复 支持 反对

使用道具 举报

4

主题

16

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2016-8-29
在线时间
12 小时
发表于 2016-11-5 15:21:50 | 显示全部楼层
楼主,我用的STM32F407+ILI93412.8寸。移植过来STemWIn以后,测试Demo发现画面的速度很慢,画面的切换都是从上倒下一点一点换的。想问下楼主有没有什么优化的方案
回复 支持 反对

使用道具 举报

4

主题

16

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2016-8-29
在线时间
12 小时
发表于 2016-11-5 15:23:27 | 显示全部楼层
楼主,我也是IAR,可否交流一下经验~
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2016-11-17
在线时间
6 小时
发表于 2016-11-21 14:51:40 | 显示全部楼层
楼主 你的硬件错误是指程序死在这里了吧HardFault_Handler()  大概是什么原因导致的 我现在卡在这里了 求救啊
回复 支持 反对

使用道具 举报

0

主题

0

帖子

0

精华

新手入门

积分
1
金钱
1
注册时间
2022-9-26
在线时间
0 小时
发表于 2017-1-13 01:23:23 | 显示全部楼层
suxuan0817 发表于 2016-11-21 14:51
楼主 你的硬件错误是指程序死在这里了吧HardFault_Handler()  大概是什么原因导致的 我现在卡在这里了 求 ...

把STM32的堆栈的栈调大一点就可以了。
回复 支持 反对

使用道具 举报

7

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
301
金钱
301
注册时间
2016-10-1
在线时间
115 小时
发表于 2022-1-28 02:41:13 来自手机 | 显示全部楼层
automotive测试会不会花屏
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-7-29
在线时间
9 小时
发表于 2022-2-24 08:56:33 | 显示全部楼层
suxuan0817 发表于 2016-11-21 14:51
楼主 你的硬件错误是指程序死在这里了吧HardFault_Handler()  大概是什么原因导致的 我现在卡在这里了 求 ...

我也是这个问题  求救
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-7-29
在线时间
9 小时
发表于 2022-2-24 09:31:07 | 显示全部楼层
多谢 之前一直卡死在HardFault_Handler(),看网上都说是堆栈小了,然后我去改了启动文件里的堆栈大小,没用 ,今天又看到楼主说的,突然想着把cubeMX里的堆栈大小改一下,解决了 哈哈哈
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-7-29
在线时间
9 小时
发表于 2022-2-24 15:10:14 | 显示全部楼层
给大家提个醒,现在使用新版本的emWin库,GUI_X_Config(void)函数中不要用 GUI_ALLOC_SetAvBlockSize 函数配置存储块的平均大小 , 直接屏蔽!!!
否则GUI_Init卡住,直接进硬件错误中断!!!
(我上面那个回复错了,并没有解决
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 10:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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