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

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

[复制链接]
wenyangzeng 发布时间:2018-7-9 13:42
本帖最后由 wenyangzeng 于 2018-7-10 20:20 编辑
0 q! u) U5 Q, G' W( F! i6 c/ [1 r0 h. e8 [: I' ?
CubeMX配置STM32F769I GUI过程出现的BUG及解决方法

! u+ X4 u6 l9 f0 P& O9 y1 a1 h3 C4 n
# G0 h3 i# [+ g( [8 A5 q' f) Y
0 S( `. y: Q& J1 {' m6 N

4 h! O+ O& a) y2 S/ \$ T
    按照帖子介绍的方法,很快就配置完成了STM32F769I DiscvoeryGUI工程。可能所用的CubeMX4.26.0版本与版主的不同,编译下载后运行结果如图1,图像显示不正常。
' |; Z$ m  A! p$ s7 G/ a/ m. ]" n" s
1.png
                             图1

' |9 j  j* j: k5 j: l" O$ l
这个demo背景色是黑色,从图中可以看到H方向水平扫描大概只扫描了屏幕的一半400DPI,好像是从下往上扫描而不是从左往右扫描。右边的彩条是复位时留下了的。

/ }7 o. w8 Q0 r  T! @' x
针对400DPI进行分析
! D: C# |) V, K) `
步骤1
尝试将MX_LCD_Init()函数中的
hltdc.Init.AccumulatedActiveW=402改成802
hltdc.Init.TotalWidth=403改成 803;参见图6
( `4 g7 P8 a1 z. @
编译运行后结果如下图2:

, S! T& ^8 N3 Q' \; c4 N  R* l9 s# y1 L: u+ c% C: M
2.png
                                图2

0 `% l& Z( G) J7 D9 l
H方向拉长了,W方向没有改变,问题还是没有解决。

$ w8 ~+ S6 E7 D( r- d2 e
步骤2
回到CubeMX
* y+ K% W% N; O7 D- z" ^/ R* z2 {3 |9 B
3.png
, b7 \8 D. g9 j8 q0 {, s
                        图3
$ a) P5 I7 I8 v/ |' Q- \0 s
% W! i% _) b3 j- j7 P6 q+ m
修改CubeMXLTDC Parameter参数配置将Activa width400修改成800
% K3 l9 k2 D" U: b0 G" t: \7 n& D* x
4.png
                                  图4
' U( g- [: H; x% |
重新生成工程,编译下载运行,结果见图5:

. W4 B/ m  F/ o$ n* w5 R' G% i
5.png
                             图5
/ q3 Q- p; g3 g
W方向扫描正常了,但H垂直方向坐标明显有误。
8 M1 H1 k0 e/ z9 ~% y+ @3 s0 z
先小结一下:
为什么在MDK中直接修改函数参数Activa width(步骤1),改变W方向扫描无效?
而在CubeMX中(步骤2)修改Activa width生成新工程有效,改变W方向扫描有效,但H方向坐标出错?
判断:可能是CubeMX的一个BUG。大概从CubeMX中更新工程时不只更新了MX_LCD_Init()函数的内容,应该还有某个文件也更新了,但更新对象错了,可能是W坐标数据更新到H坐标数据去了

0 E, m0 S/ s, F# R
这个BUG只能靠ST专家来解决了,我们只能用修补的办法来应急使用:
既然我们从CubeMX中(步骤2)修改了ActiveWidth=800,W方向扫描就正常了,H方向扫描却错误了。
而我们在步骤1修改的:hltdc.Init.AccumulatedActiveW   和  hltdc.Init.TotalWidth 的参数可以影响H方向。

0 C# I8 U% d: x$ J! {5 d
修改步骤(2步)
1、先在CubeMX中修改:Activa width=800,(图4)
生成新工程(一定要生成新工程!!)。
2、然后在MDK下修改修改MX_LCD_Init()
  j- O% O4 n3 m9 O# A2 @  k- t
  hltdc.Init.AccumulatedActiveW = 402;  //(原802)
  hltdc.Init.TotalWidth = 403;                 //(原803)
0 r3 l. Q. i9 I: h3 m, N
图6改成图7的参数:

, x/ N4 K1 C1 v# c
6.png
                                图6
! Y  O( c, m0 _- F. `+ r3 i  V) \

! h& [" t: J, b9 {1 d5 C$ P/ R
5 G  u) B( ^$ L9 w+ p
7.png

$ i! x1 ]9 [- S# Z: i- p; V; W
                               图7
% w& t7 G( g% r7 v& |
编译、下载、运行:
2 m* m6 S/ T4 b& ~2 A7 v7 x$ ]% @
OK!
; u& l8 K; E6 R# t' G+ X
8.png
                          图8
4 }& n2 T3 F0 Y! a
使用不同版本CubeMX的朋友也要试试哦!
+ H+ T- k8 Z" ^! {6 i3 t
2 G2 C* H& a- ?
1 s" [6 g' B* Q& [- Z- T

- Q% }0 _3 Y$ H; s' L2 L; k
3 y! ^6 o3 W$ X% R( u& J8 C. [0 `
收藏 评论12 发布时间:2018-7-9 13:42

举报

12个回答
wolfgang 回答时间:2018-7-9 21:55:37
wenyangzeng 发表于 2018-7-9 16:070 _& J5 i4 v9 ]& s
CubeMX按照图4修改后生成新的工程,图4 里的802、803在MDK里显示在图6的参数中,不改成图7就显示图5的图像 ...

3 N+ K3 u$ K% I! I' }1 ]你图3 原本就是402、403,按照图4修改为802、803后,8 H1 i' s; r, K# F! @
后来又按照图6、图7修改会402、403- {9 d, C, p6 y' f0 b/ E
这怎么在围绕打转呢?这个402、403修改来修改去,
; \1 m% f+ S: u* V" @# E7 a5 p2 B3 o* k( o* D+ D9 O  Y' h3 `3 S3 b
其实你没说到问题的重点,看我原贴后边的 补充说明* G* y2 r$ |3 P; ?( V$ A4 X
针对图一,最终还是 6 p- L7 V2 N4 J0 {. n* N
OTM8009A_ORIENTATION_PORTRAIT 和 OTM8009A_ORIENTATION_LANDSCAPE 的问题
5 d  y9 a* ]+ k5 T$ _; P( x1 I6 J, X8 I  n3 @: a% V; S- c2 g: P( C% j

+ x8 N4 D" p+ D8 T, t0 i% g  y2 S
wolfgang 回答时间:2018-7-9 14:51:28
1.jpg . S" s+ S7 X: }1 c9 g$ R
应该是某些参数没设置对造成,不过我看你的内容,之前不就是402、403?
( u7 U* q8 [2 f. q5 z* z0 s$ Y8 p$ j4 i' X

# f: s8 y( t' d# [7 ]7 |我的CubeMX与你的事一样的。 4.268 X+ N4 v7 a" w) Z2 \' g
wolfgang 回答时间:2018-7-9 14:53:18
不过还是值得恭喜,开启了 MIPI DSI学习的大门
wenyangzeng 回答时间:2018-7-9 15:04:51
wolfgang2015 发表于 2018-7-9 14:51# \; V9 @: u8 a) B( C
应该是某些参数没设置对造成,不过我看你的内容,之前不就是402、403?

" c' b4 @" }9 K( K, hActive=400时,底下2个是402、403 ,显示不正常
8 l0 E) v! K* a; a+ m, C( \, I6 WActive=800时是802,803
wolfgang 回答时间:2018-7-9 15:31:23
wenyangzeng 发表于 2018-7-9 15:046 ?. D$ _$ u- e" w: f: T( Z
Active=400时,底下2个是402、403 ,显示不正常
- T  v4 A! b! v# z$ jActive=800时是802,803
; f& _! ^" m) y) T7 Z
我是说“图6改成图7的参数”这里
" n! u7 E1 w1 T这不是也配置成为:402、403 / ]% P) G3 J+ a
wenyangzeng 回答时间:2018-7-9 16:07:46
本帖最后由 wenyangzeng 于 2018-7-9 16:14 编辑 % z: \. X, @; I& }9 L9 g
wolfgang2015 发表于 2018-7-9 15:31+ ?( o) j8 y, x/ Q: X/ A; \% C
我是说“图6改成图7的参数”这里. ^: {# X6 d6 _
这不是也配置成为:402、403

9 S; a5 b0 _" @* JCubeMX按照图4修改后生成新的工程,图4 里的802、803在MDK里显示在图6的参数中,不改成图7就显示图5的图像了。
wenyangzeng 回答时间:2018-7-9 22:17:09
本帖最后由 wenyangzeng 于 2018-7-9 22:19 编辑 4 L2 ~$ y  N8 q5 t
wolfgang2015 发表于 2018-7-9 21:55
9 E% o1 @# x8 \2 ~6 [你图3 原本就是402、403,按照图4修改为802、803后,
  c& }/ q# K0 h/ H9 q2 ?) B" b后来又按照图6、图7修改会402、403! f$ D: T5 D5 o. c0 l' p0 v, I5 N
这怎么在围绕打 ...
" B- M5 Z: L; }% q5 j
版主没有理解我的思路,那个402、403必须是在cubeMX里修改Active=800,得到802和803.生成工程后,在MDK里改回402和403.没有打转。cubeMX里不修改,没有生成新工程,在MDK里改没有用的。
3 ]; s# S0 q  z8 y/ T8 i
5 M! }% q& ?, G! Y2 ]
wolfgang 回答时间:2018-7-9 22:42:26
wenyangzeng 发表于 2018-7-9 22:17
7 r0 j+ e) o* j7 p" o& N0 m; n版主没有理解我的思路,那个402、403必须是在cubeMX里修改Active=800,得到802和803.生成工程后,在MDK里 ...
. Q5 r7 o* B0 F$ @! \
对比一下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 编辑 - z/ f0 m: T9 u: V" ^$ E
50031185 发表于 2018-7-21 09:47$ Z! q5 x& ?* J1 ^- ~2 b
我在用Cube 感觉也是 会出现各种奇怪的问题,很恶心,  时不时就得重新生成工程 ...

1 ~# M. r9 e+ f  |& Q$ U6 `只要过程中某一步参数没有设置好,后面就很麻烦了。1楼链接的版主的那篇帖子很具体,可以按照贴中方法进行。
2 G4 K& x9 B( [
KEY1 回答时间:2018-9-18 09:25:25
wolfgang2015 发表于 2018-7-9 21:55
( Q; {3 [; H% e2 g/ Y+ }你图3 原本就是402、403,按照图4修改为802、803后,
; c9 M2 p0 v3 k7 H1 d* w后来又按照图6、图7修改会402、403
2 V8 F: [$ l& M3 ]这怎么在围绕打 ...
# B4 h2 n, g" E$ }
是的,我也出现了相同问题,感觉就是方向错了,找了半天没找到地方, 最后搜索关键字找到了
4 h; a  h( h0 l* t, f, M初始化成了:) S" |% Z, j1 {
OTM8009A_Init(OTM8009A_FORMAT, OTM8009A_ORIENTATION_PORTRAIT);* R0 v. z0 b, A; r1 ~8 ]
0 b4 \$ R9 v  S! l. b$ w
OTM8009A_ORIENTATION_PORTRAIT  指竖屏模式  显示人像方向! Z- i" m( A+ b  I0 s4 U
OTM8009A_ORIENTATION_LANDSCAPE  横屏模式, 显示风景方向
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版