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

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

[复制链接]
wenyangzeng 发布时间:2018-7-9 13:42
本帖最后由 wenyangzeng 于 2018-7-10 20:20 编辑
5 E3 y; Z% M' S+ _, m
1 S' [- H0 i+ b+ h$ u5 T
CubeMX配置STM32F769I GUI过程出现的BUG及解决方法

" N" q" j( @) I
' ]& v& V& L6 ]# }
; O/ v% H% U2 w9 {, c
0 T! j. S. O: n
    按照帖子介绍的方法,很快就配置完成了STM32F769I DiscvoeryGUI工程。可能所用的CubeMX4.26.0版本与版主的不同,编译下载后运行结果如图1,图像显示不正常。

+ o% H/ u5 z4 |& r/ q4 e4 l3 q
1.png
                             图1
; J& p  {! `: W$ f# t
这个demo背景色是黑色,从图中可以看到H方向水平扫描大概只扫描了屏幕的一半400DPI,好像是从下往上扫描而不是从左往右扫描。右边的彩条是复位时留下了的。

% ], \! x) F- Q% }* S( k; R7 N' y+ {
针对400DPI进行分析
# W- f1 }( h, X. [4 f
步骤1
尝试将MX_LCD_Init()函数中的
hltdc.Init.AccumulatedActiveW=402改成802
hltdc.Init.TotalWidth=403改成 803;参见图6
2 Q' p7 Q! m& S3 r" q- F$ a7 L
编译运行后结果如下图2:

* o! `# P: q  R9 G+ q; z3 C+ V: ~' K' E# A
2.png
                                图2

5 c8 `6 J/ G0 p. D  t
H方向拉长了,W方向没有改变,问题还是没有解决。

6 ?( d+ y3 `" B' @' @% E! H
步骤2
回到CubeMX

2 _6 _7 @* \* T" N1 P  F% r  W
3.png
0 h8 x  `3 S, k( t) n% M! U; q
                        图3
+ x* w: J0 }. C: n4 Q& k
) `3 B% j0 s2 |. A4 |( |5 x$ c3 K8 c
修改CubeMXLTDC Parameter参数配置将Activa width400修改成800

( U" T; r3 A' Q9 s3 L: t
4.png
                                  图4

* J1 c' q  ~9 g* a& b, ~* ^
重新生成工程,编译下载运行,结果见图5:

" @# L) H+ D' a( S' c* S
5.png
                             图5

) U! q6 h' ~3 t1 t' p- _* V7 F( _
W方向扫描正常了,但H垂直方向坐标明显有误。

4 S% C  w+ i0 B# |
先小结一下:
为什么在MDK中直接修改函数参数Activa width(步骤1),改变W方向扫描无效?
而在CubeMX中(步骤2)修改Activa width生成新工程有效,改变W方向扫描有效,但H方向坐标出错?
判断:可能是CubeMX的一个BUG。大概从CubeMX中更新工程时不只更新了MX_LCD_Init()函数的内容,应该还有某个文件也更新了,但更新对象错了,可能是W坐标数据更新到H坐标数据去了

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

$ G6 Z, T' F% N$ ~- V* f
修改步骤(2步)
1、先在CubeMX中修改:Activa width=800,(图4)
生成新工程(一定要生成新工程!!)。
2、然后在MDK下修改修改MX_LCD_Init()

5 ?7 y5 d3 M) ?- Q
  hltdc.Init.AccumulatedActiveW = 402;  //(原802)
  hltdc.Init.TotalWidth = 403;                 //(原803)

( Z, f5 K0 G" ^: a' n9 Z
图6改成图7的参数:
1 S2 `; }% n4 B, ^' u
6.png
                                图6
; X" t1 x# \0 l  g# K7 @

0 ]4 E  f) w$ D, G) I8 w$ a/ n' a5 I, F3 y* P" r0 I0 ?
7.png
4 B; R1 R3 {& M9 R" ?: W" ]3 B# A
                               图7
& Q, S( M8 E2 V# Q
编译、下载、运行:

' U3 D+ v. t) q; Y
OK!
" b* ^# x( s# j
8.png
                          图8
  y3 p* B" Y/ i2 ?5 _. n0 J
使用不同版本CubeMX的朋友也要试试哦!
3 n* E( D! P$ n$ A$ C  M: x
: P+ a  b# u8 h' s7 y! b9 w3 [

# W4 ^; M1 r& C4 Q) E) X4 D( W/ ~1 A: j2 u# Q1 w% A

8 b, ^: w( D4 h
收藏 评论12 发布时间:2018-7-9 13:42

举报

12个回答
wolfgang 回答时间:2018-7-9 21:55:37
wenyangzeng 发表于 2018-7-9 16:079 A; V. U, C0 C& ^
CubeMX按照图4修改后生成新的工程,图4 里的802、803在MDK里显示在图6的参数中,不改成图7就显示图5的图像 ...

. K( m; ]  A9 c你图3 原本就是402、403,按照图4修改为802、803后,* U, `4 c* m0 w2 K/ y- m
后来又按照图6、图7修改会402、403+ X3 K2 c( h+ \: C
这怎么在围绕打转呢?这个402、403修改来修改去,
4 t" v0 ]5 o/ i9 B# P* j+ G. v7 W+ Q% \# N, \* x- {4 l
其实你没说到问题的重点,看我原贴后边的 补充说明
* M7 p9 B7 r& e% L1 v  Z针对图一,最终还是
& o/ s# f+ t7 ^) cOTM8009A_ORIENTATION_PORTRAIT 和 OTM8009A_ORIENTATION_LANDSCAPE 的问题
) b) N, M+ r+ z4 ], G5 d( [; q$ c- D/ p; X
) L* n  L! `% _1 B
wolfgang 回答时间:2018-7-9 14:51:28
1.jpg $ z6 H- G- j, J1 U0 E5 ?
应该是某些参数没设置对造成,不过我看你的内容,之前不就是402、403?
5 o9 I1 j3 n! {6 P8 T# M! m- y4 r$ ~3 q. {
4 @% k6 M* m& E& g& I) R& S
我的CubeMX与你的事一样的。 4.26
9 e: B5 T; J, @& ?. d; X! O
wolfgang 回答时间:2018-7-9 14:53:18
不过还是值得恭喜,开启了 MIPI DSI学习的大门
wenyangzeng 回答时间:2018-7-9 15:04:51
wolfgang2015 发表于 2018-7-9 14:51
. X1 Y& M" y' |应该是某些参数没设置对造成,不过我看你的内容,之前不就是402、403?
  h8 R) |+ i7 s$ J) M# Y) E0 O
Active=400时,底下2个是402、403 ,显示不正常1 j$ q8 V( n7 w  Q/ p
Active=800时是802,803
wolfgang 回答时间:2018-7-9 15:31:23
wenyangzeng 发表于 2018-7-9 15:04
8 F$ w# ?& L, f  b, j7 ]) rActive=400时,底下2个是402、403 ,显示不正常9 Y7 O5 m/ E. w* R3 C
Active=800时是802,803
# R. i+ a0 ^. r$ F
我是说“图6改成图7的参数”这里
" d/ s) C- M* f# x7 Y& S这不是也配置成为:402、403 9 O' n- U6 j3 l* E! j6 p
wenyangzeng 回答时间:2018-7-9 16:07:46
本帖最后由 wenyangzeng 于 2018-7-9 16:14 编辑
3 y' \* g' v1 u4 D9 x+ d/ z
wolfgang2015 发表于 2018-7-9 15:31, F. P9 U3 [: V0 T" s
我是说“图6改成图7的参数”这里/ K5 n# Z' ]! A
这不是也配置成为:402、403

0 i9 f, J6 c5 i- _  d' Y9 H- V& }CubeMX按照图4修改后生成新的工程,图4 里的802、803在MDK里显示在图6的参数中,不改成图7就显示图5的图像了。
wenyangzeng 回答时间:2018-7-9 22:17:09
本帖最后由 wenyangzeng 于 2018-7-9 22:19 编辑
+ R& }2 E& R( n7 ?
wolfgang2015 发表于 2018-7-9 21:55
' Z5 R8 G6 h6 s你图3 原本就是402、403,按照图4修改为802、803后,6 ~  @& S4 Q; Z
后来又按照图6、图7修改会402、403
3 k- \. t( ?  |& O这怎么在围绕打 ...
, M1 O0 t9 e4 A7 z* b
版主没有理解我的思路,那个402、403必须是在cubeMX里修改Active=800,得到802和803.生成工程后,在MDK里改回402和403.没有打转。cubeMX里不修改,没有生成新工程,在MDK里改没有用的。
- m3 }: o9 n; s
/ l+ K) b. z' {, _2 h
wolfgang 回答时间:2018-7-9 22:42:26
wenyangzeng 发表于 2018-7-9 22:174 u* F$ A* W# n9 k% y
版主没有理解我的思路,那个402、403必须是在cubeMX里修改Active=800,得到802和803.生成工程后,在MDK里 ...
( r. g. b1 h( s) }% ~3 [1 V: \
对比一下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 编辑
7 d% i" V0 U. W* [7 F3 X
50031185 发表于 2018-7-21 09:47
7 y5 h7 }) w: `8 j我在用Cube 感觉也是 会出现各种奇怪的问题,很恶心,  时不时就得重新生成工程 ...
5 J: G/ j" E8 m
只要过程中某一步参数没有设置好,后面就很麻烦了。1楼链接的版主的那篇帖子很具体,可以按照贴中方法进行。- j* W4 y/ z$ @
KEY1 回答时间:2018-9-18 09:25:25
wolfgang2015 发表于 2018-7-9 21:55' J: ]" L, Y, j
你图3 原本就是402、403,按照图4修改为802、803后,/ X* M9 F* c# F0 f* z& U
后来又按照图6、图7修改会402、403
9 J" S: A- C9 f+ [这怎么在围绕打 ...

, k0 l6 x3 r# F/ L3 S  U& a0 x* G1 S是的,我也出现了相同问题,感觉就是方向错了,找了半天没找到地方, 最后搜索关键字找到了
: I% m1 U0 \! H" ~初始化成了:) R/ e9 @8 ^1 W/ ^4 X; r
OTM8009A_Init(OTM8009A_FORMAT, OTM8009A_ORIENTATION_PORTRAIT);4 ~; N: v( t* O

* w/ S( ?; O% ~OTM8009A_ORIENTATION_PORTRAIT  指竖屏模式  显示人像方向! `4 k2 b# B+ H) H5 k& `
OTM8009A_ORIENTATION_LANDSCAPE  横屏模式, 显示风景方向
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版