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

CubeMX配置STM32F769I GUI过程出现的BUG及解决方法

[复制链接]
wenyangzeng 发布时间:2018-7-9 13:42
本帖最后由 wenyangzeng 于 2018-7-10 20:20 编辑 % d& k8 F" {; t; q

$ W+ Y0 y+ ^0 o( \* ]5 i4 P
CubeMX配置STM32F769I GUI过程出现的BUG及解决方法

: u+ w; n9 b  \- j. K- w& ^
3 }2 _  P3 A3 W& R# C2 j! [

5 _. m( f6 D: }5 T& z0 A, v; L; M! L/ V$ p* E, a2 `6 R
    按照帖子介绍的方法,很快就配置完成了STM32F769I DiscvoeryGUI工程。可能所用的CubeMX4.26.0版本与版主的不同,编译下载后运行结果如图1,图像显示不正常。

; c1 C" ]$ ]! F% j9 V6 u- b& I8 f
1.png
                             图1
9 M" @8 P* U; g  }: A! |% A
这个demo背景色是黑色,从图中可以看到H方向水平扫描大概只扫描了屏幕的一半400DPI,好像是从下往上扫描而不是从左往右扫描。右边的彩条是复位时留下了的。

0 m4 z" j7 ?  K) k( L6 Q2 e5 L
针对400DPI进行分析
4 S4 \$ [1 S  h6 L
步骤1
尝试将MX_LCD_Init()函数中的
hltdc.Init.AccumulatedActiveW=402改成802
hltdc.Init.TotalWidth=403改成 803;参见图6

' y! |/ b5 ?8 r8 b4 R; O& K+ i
编译运行后结果如下图2:
0 s' V8 E7 D3 ]0 t# g
4 V& Q  T/ _) D3 x& a7 _1 a# v: K
2.png
                                图2
- a; P: `; {4 ?9 |& I
H方向拉长了,W方向没有改变,问题还是没有解决。
+ s4 I* O$ g- q
步骤2
回到CubeMX
3 G8 U/ n+ G; W* u, M
3.png
0 w# l7 P6 F7 u$ f* V
                        图3

7 K# O/ P7 ~, k: z9 W% f* f) U( z; s
修改CubeMXLTDC Parameter参数配置将Activa width400修改成800

$ v2 Y# R* v4 r3 p$ O, f
4.png
                                  图4

0 }+ B' i3 l* b2 w, K" S
重新生成工程,编译下载运行,结果见图5:
: p* g1 R6 n- d1 t: D
5.png
                             图5
& W: s3 }" @7 f3 Y# W3 w6 c
W方向扫描正常了,但H垂直方向坐标明显有误。
% T+ ]8 q, n  u2 Q
先小结一下:
为什么在MDK中直接修改函数参数Activa width(步骤1),改变W方向扫描无效?
而在CubeMX中(步骤2)修改Activa width生成新工程有效,改变W方向扫描有效,但H方向坐标出错?
判断:可能是CubeMX的一个BUG。大概从CubeMX中更新工程时不只更新了MX_LCD_Init()函数的内容,应该还有某个文件也更新了,但更新对象错了,可能是W坐标数据更新到H坐标数据去了

  e: ?; L( U  F3 c' `
这个BUG只能靠ST专家来解决了,我们只能用修补的办法来应急使用:
既然我们从CubeMX中(步骤2)修改了ActiveWidth=800,W方向扫描就正常了,H方向扫描却错误了。
而我们在步骤1修改的:hltdc.Init.AccumulatedActiveW   和  hltdc.Init.TotalWidth 的参数可以影响H方向。

! P. R( I6 `0 L) |0 q8 \; v
修改步骤(2步)
1、先在CubeMX中修改:Activa width=800,(图4)
生成新工程(一定要生成新工程!!)。
2、然后在MDK下修改修改MX_LCD_Init()
6 \. Z& }- _. d4 [
  hltdc.Init.AccumulatedActiveW = 402;  //(原802)
  hltdc.Init.TotalWidth = 403;                 //(原803)

+ S/ c* @9 @" e# q3 @2 U' S
图6改成图7的参数:
. [0 M5 N/ p& `, g8 @
6.png
                                图6
0 E: \  ?1 Y/ ^( q  V
: b. @/ ~* D$ f3 u

) {' y9 j$ j3 @9 Z4 P9 L3 J8 H; j
7.png

! t- v% b2 ]2 |- z, N
                               图7
0 P3 p1 F; O' Z: X
编译、下载、运行:
3 m  F, `2 q3 b$ m+ w5 K
OK!

1 |6 ]% W( N6 _  p: M+ `
8.png
                          图8

$ d1 k+ s& r0 R9 l3 l( }- q1 X2 F
使用不同版本CubeMX的朋友也要试试哦!
$ V/ _- c% l9 Y

* o2 t) [  ^6 D3 C9 r: X  l. z6 u0 K  L' [$ y  F* H
' H6 n+ r! |2 {5 Q& |) L
& C, y: `" [" ]) E8 t1 f( m
收藏 评论12 发布时间:2018-7-9 13:42

举报

12个回答
wolfgang 回答时间:2018-7-9 21:55:37
wenyangzeng 发表于 2018-7-9 16:07& d2 M; b/ r; ?, V8 U
CubeMX按照图4修改后生成新的工程,图4 里的802、803在MDK里显示在图6的参数中,不改成图7就显示图5的图像 ...

$ o  X% V! K3 V% {1 y你图3 原本就是402、403,按照图4修改为802、803后,
& F# d- H7 s+ }" g. P/ k后来又按照图6、图7修改会402、403
7 u2 c$ \# D: \' v, `这怎么在围绕打转呢?这个402、403修改来修改去,- b! I- @6 v& U8 f

3 M: m$ f/ f* i! g" T其实你没说到问题的重点,看我原贴后边的 补充说明1 o3 q  a3 f0 f1 p3 f
针对图一,最终还是
0 k1 k+ R0 o5 O( }( LOTM8009A_ORIENTATION_PORTRAIT 和 OTM8009A_ORIENTATION_LANDSCAPE 的问题* b' h/ I$ M  \. L" t

5 `5 s2 U+ K2 o2 [2 Z

7 E* ~9 b. ?& ^: ?
wolfgang 回答时间:2018-7-9 14:51:28
1.jpg # n; K. ^! C( c9 Y
应该是某些参数没设置对造成,不过我看你的内容,之前不就是402、403?
) X3 g# n! t5 v; V: c2 |5 u& Y) V9 J; X1 o

1 x$ p# P' c# g  g$ L我的CubeMX与你的事一样的。 4.26
& L+ z- W6 [1 D) g# h) C1 l
wolfgang 回答时间:2018-7-9 14:53:18
不过还是值得恭喜,开启了 MIPI DSI学习的大门
wenyangzeng 回答时间:2018-7-9 15:04:51
wolfgang2015 发表于 2018-7-9 14:51
! K. r; {# V, R0 m- u: [1 s# Z应该是某些参数没设置对造成,不过我看你的内容,之前不就是402、403?

  p# N& i, }! F: H& t  }Active=400时,底下2个是402、403 ,显示不正常9 a7 E0 ?" ?) x+ E' o9 n8 d0 B$ ^
Active=800时是802,803
wolfgang 回答时间:2018-7-9 15:31:23
wenyangzeng 发表于 2018-7-9 15:04
* e* j: c0 v( I+ dActive=400时,底下2个是402、403 ,显示不正常5 r1 d" i' V+ R4 a7 l! U6 B
Active=800时是802,803

9 Q6 U6 @1 A* W  N) `我是说“图6改成图7的参数”这里
7 H3 s0 G3 j2 C# p3 y8 n1 B1 ?+ F! v这不是也配置成为:402、403 8 v' X5 `. m; @  K- _0 N
wenyangzeng 回答时间:2018-7-9 16:07:46
本帖最后由 wenyangzeng 于 2018-7-9 16:14 编辑
0 V* e# o$ ~  D' r0 I0 n5 X
wolfgang2015 发表于 2018-7-9 15:31. r% B/ p4 n% L, R. E% D  q
我是说“图6改成图7的参数”这里
' q+ F: t2 r% y1 O( x$ P3 U这不是也配置成为:402、403
- ]3 |* o8 |# l, F" Y$ L8 J7 Z
CubeMX按照图4修改后生成新的工程,图4 里的802、803在MDK里显示在图6的参数中,不改成图7就显示图5的图像了。
wenyangzeng 回答时间:2018-7-9 22:17:09
本帖最后由 wenyangzeng 于 2018-7-9 22:19 编辑
6 ?- ^7 e  A3 ~& }1 M& g
wolfgang2015 发表于 2018-7-9 21:55
/ G( y9 k, `: o9 _0 ?你图3 原本就是402、403,按照图4修改为802、803后,- B9 v( J! O  m
后来又按照图6、图7修改会402、403" A! X: Y& w6 ^/ H
这怎么在围绕打 ...

8 ?7 t! F* g9 M; N0 S版主没有理解我的思路,那个402、403必须是在cubeMX里修改Active=800,得到802和803.生成工程后,在MDK里改回402和403.没有打转。cubeMX里不修改,没有生成新工程,在MDK里改没有用的。* O! j" E" j% V7 C( U+ H* u

/ L+ @- _8 R8 V1 q) W! K
wolfgang 回答时间:2018-7-9 22:42:26
wenyangzeng 发表于 2018-7-9 22:17; @  B$ Q: N! L) Y3 I: V+ L* ~& ?
版主没有理解我的思路,那个402、403必须是在cubeMX里修改Active=800,得到802和803.生成工程后,在MDK里 ...

( F% E1 n2 p  g2 Y; H5 }. n对比一下active=800 和active=400 其他代码呢?看看生成的代码还有什么差别~
zero99 回答时间:2018-7-16 17:12:42
谢谢分享
KEY1 回答时间:2018-7-21 09:47:46
我在用Cube 感觉也是 会出现各种奇怪的问题,很恶心,  时不时就得重新生成工程
wenyangzeng 回答时间:2018-7-21 09:57:04
本帖最后由 wenyangzeng 于 2018-7-21 09:58 编辑 ! h2 p% i2 S- j2 I& m3 I: j" F
50031185 发表于 2018-7-21 09:47! c7 c& y, Y# v- H$ T
我在用Cube 感觉也是 会出现各种奇怪的问题,很恶心,  时不时就得重新生成工程 ...

# w! ~/ v  o& I3 q. a# m只要过程中某一步参数没有设置好,后面就很麻烦了。1楼链接的版主的那篇帖子很具体,可以按照贴中方法进行。
" `- n) N! J! k# [( Y
KEY1 回答时间:2018-9-18 09:25:25
wolfgang2015 发表于 2018-7-9 21:55
: B6 d: y- v2 h你图3 原本就是402、403,按照图4修改为802、803后,) n0 S, ~: G* y* z! D8 |* i
后来又按照图6、图7修改会402、403
* e* u5 E$ o+ u4 _  ^这怎么在围绕打 ...

8 J$ m# p$ B* y是的,我也出现了相同问题,感觉就是方向错了,找了半天没找到地方, 最后搜索关键字找到了
$ }! n; c# i& N0 X初始化成了:
" p5 p, Z0 W3 h7 QOTM8009A_Init(OTM8009A_FORMAT, OTM8009A_ORIENTATION_PORTRAIT);
; L4 S/ l4 {" X+ O, X6 Z  z9 G. ^: Q! c6 F% q
OTM8009A_ORIENTATION_PORTRAIT  指竖屏模式  显示人像方向
/ C3 J% Q) L. X+ kOTM8009A_ORIENTATION_LANDSCAPE  横屏模式, 显示风景方向
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版