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

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

[复制链接]
wenyangzeng 发布时间:2018-7-9 13:42
本帖最后由 wenyangzeng 于 2018-7-10 20:20 编辑 9 {$ Q. Q1 L0 V* a9 E. t
& K0 k1 ^$ B: y2 d$ h6 N( [' |
CubeMX配置STM32F769I GUI过程出现的BUG及解决方法
3 ^, z- K* J8 J# F3 m

2 f) T% k. E$ v, Z
  i6 F( L# F* W/ w7 A
$ }3 C( M/ F1 p# i( z9 j* M' ~6 o) e* }
    按照帖子介绍的方法,很快就配置完成了STM32F769I DiscvoeryGUI工程。可能所用的CubeMX4.26.0版本与版主的不同,编译下载后运行结果如图1,图像显示不正常。
' a, V& Z, b! z$ e: W- t+ |+ i
1.png
                             图1
$ Z2 m5 K6 g0 b5 q
这个demo背景色是黑色,从图中可以看到H方向水平扫描大概只扫描了屏幕的一半400DPI,好像是从下往上扫描而不是从左往右扫描。右边的彩条是复位时留下了的。
: w" ~. ?- Y2 x) Z+ d* ~
针对400DPI进行分析

4 @, Y& w: H0 P3 E
步骤1
尝试将MX_LCD_Init()函数中的
hltdc.Init.AccumulatedActiveW=402改成802
hltdc.Init.TotalWidth=403改成 803;参见图6
  f5 I/ x) @# {! w- j+ E
编译运行后结果如下图2:
; x0 b0 Z& M+ e7 A) P
. k+ {0 J" K. i  \9 l* v
2.png
                                图2

- S, C: k9 U$ @. K7 W
H方向拉长了,W方向没有改变,问题还是没有解决。

  ]7 M) Y! a0 \/ L+ W) B- _3 F
步骤2
回到CubeMX

% W/ X, }9 Y8 K7 {
3.png
$ E+ S8 A& Z( F. j$ v
                        图3

( C" a. I- a! Z; N9 |$ U; k* y! X8 v: w6 m5 P) k1 Q
修改CubeMXLTDC Parameter参数配置将Activa width400修改成800
; L" Y, m$ R/ H5 P
4.png
                                  图4

) k& `6 C3 n5 n5 {4 |! @% B
重新生成工程,编译下载运行,结果见图5:
2 [0 R5 w1 W9 T' r' q1 u5 o; q
5.png
                             图5
. H7 R  p$ E' l3 ?3 m& y7 `1 |( G+ v* P
W方向扫描正常了,但H垂直方向坐标明显有误。
" g6 L& V/ H& \  q( B# `
先小结一下:
为什么在MDK中直接修改函数参数Activa width(步骤1),改变W方向扫描无效?
而在CubeMX中(步骤2)修改Activa width生成新工程有效,改变W方向扫描有效,但H方向坐标出错?
判断:可能是CubeMX的一个BUG。大概从CubeMX中更新工程时不只更新了MX_LCD_Init()函数的内容,应该还有某个文件也更新了,但更新对象错了,可能是W坐标数据更新到H坐标数据去了
; R( v9 J/ b+ G# C* F: O
这个BUG只能靠ST专家来解决了,我们只能用修补的办法来应急使用:
既然我们从CubeMX中(步骤2)修改了ActiveWidth=800,W方向扫描就正常了,H方向扫描却错误了。
而我们在步骤1修改的:hltdc.Init.AccumulatedActiveW   和  hltdc.Init.TotalWidth 的参数可以影响H方向。
! l/ a1 C8 M' `/ e' P
修改步骤(2步)
1、先在CubeMX中修改:Activa width=800,(图4)
生成新工程(一定要生成新工程!!)。
2、然后在MDK下修改修改MX_LCD_Init()
- w7 @: W( q5 W5 ]: L, I
  hltdc.Init.AccumulatedActiveW = 402;  //(原802)
  hltdc.Init.TotalWidth = 403;                 //(原803)
' ^  ?- Y& \; o7 N1 U8 q4 I/ y( o
图6改成图7的参数:

6 l. |, C1 w0 S4 T4 `' S' _
6.png
                                图6

$ n. u$ k  [' o3 g, B0 j
' _: K/ C, |3 g& C
4 M: e$ T: Y# b+ b- E) k
7.png

6 l( |8 ^8 ]) T
                               图7
* U, i& u* u8 U# {
编译、下载、运行:
) P  A; b( B' Q8 ^: D
OK!

7 @. u" O5 N" E7 n2 J: V
8.png
                          图8

7 A! X4 D5 R9 B! a( I. P$ q4 x
使用不同版本CubeMX的朋友也要试试哦!
7 z9 O  K& d0 d3 `, R" _2 Q6 @

; Y6 @& m9 \! y* P+ L' E
3 t( Q( z2 P+ v: A7 t- s" e" |: s& z1 s, L
: M' J0 F0 C  `" {* h- x+ K" n& ^
收藏 评论12 发布时间:2018-7-9 13:42

举报

12个回答
wolfgang 回答时间:2018-7-9 21:55:37
wenyangzeng 发表于 2018-7-9 16:07
+ R" y7 U9 w+ ^* R) u) y) n7 q) Z" SCubeMX按照图4修改后生成新的工程,图4 里的802、803在MDK里显示在图6的参数中,不改成图7就显示图5的图像 ...
4 m8 v$ M) ]8 p: Q  P
你图3 原本就是402、403,按照图4修改为802、803后,) l, l' ], z( k0 I! x' y
后来又按照图6、图7修改会402、403& {# m& D+ F" s3 @( L
这怎么在围绕打转呢?这个402、403修改来修改去,2 q# ^. z1 V6 c- b2 c

( l, e& E  H, j' H其实你没说到问题的重点,看我原贴后边的 补充说明% _  `$ ]5 M0 u- z
针对图一,最终还是 ' n) K$ O2 C& @& O) D/ P
OTM8009A_ORIENTATION_PORTRAIT 和 OTM8009A_ORIENTATION_LANDSCAPE 的问题
4 L8 M3 h8 A( {6 ]. f) {6 T# ?/ y8 {3 X9 y& {

& D  }5 o9 H  W8 q8 C
wolfgang 回答时间:2018-7-9 14:51:28
1.jpg
( H7 h( a. r: E* d应该是某些参数没设置对造成,不过我看你的内容,之前不就是402、403?
- a/ p# n$ a8 x* K7 Q$ N# t! z: R; s
9 |7 N) C6 @- C5 |5 Q* [: E
+ o$ m5 U3 b, @我的CubeMX与你的事一样的。 4.26& [) j7 n; w3 U
wolfgang 回答时间:2018-7-9 14:53:18
不过还是值得恭喜,开启了 MIPI DSI学习的大门
wenyangzeng 回答时间:2018-7-9 15:04:51
wolfgang2015 发表于 2018-7-9 14:51
& r! ^, E" |# q/ O5 s0 m5 J应该是某些参数没设置对造成,不过我看你的内容,之前不就是402、403?

) E% i& T# k' G- ~. L( nActive=400时,底下2个是402、403 ,显示不正常
+ _4 y( B2 r: ^5 ]9 S4 IActive=800时是802,803
wolfgang 回答时间:2018-7-9 15:31:23
wenyangzeng 发表于 2018-7-9 15:04
8 Q1 W% i1 @5 x' A1 _Active=400时,底下2个是402、403 ,显示不正常; ]; y* E: C4 {0 Q: E  Z3 p
Active=800时是802,803

0 x# i; O) f& p" V, Q; i9 a+ L+ C我是说“图6改成图7的参数”这里3 q, P, W+ ?% ?% U
这不是也配置成为:402、403 . J6 w& z7 i0 u6 p7 n2 T
wenyangzeng 回答时间:2018-7-9 16:07:46
本帖最后由 wenyangzeng 于 2018-7-9 16:14 编辑
- f7 z; x7 G5 `/ u% W7 p
wolfgang2015 发表于 2018-7-9 15:31
" j/ {1 m* G. I/ a+ E7 F0 s我是说“图6改成图7的参数”这里6 R7 ^7 M' G' N" g
这不是也配置成为:402、403

& r0 n$ b9 U9 L' j- ICubeMX按照图4修改后生成新的工程,图4 里的802、803在MDK里显示在图6的参数中,不改成图7就显示图5的图像了。
wenyangzeng 回答时间:2018-7-9 22:17:09
本帖最后由 wenyangzeng 于 2018-7-9 22:19 编辑   |* V  ?" n8 F9 p( @
wolfgang2015 发表于 2018-7-9 21:55: b. D3 `, z" A! s9 x
你图3 原本就是402、403,按照图4修改为802、803后,
" C1 Q! h" I* U6 O6 ?/ F& x& \后来又按照图6、图7修改会402、403! y1 H6 ]) k9 |6 j$ K
这怎么在围绕打 ...

2 c/ c% k% B5 y7 S1 v$ h* _- v" T版主没有理解我的思路,那个402、403必须是在cubeMX里修改Active=800,得到802和803.生成工程后,在MDK里改回402和403.没有打转。cubeMX里不修改,没有生成新工程,在MDK里改没有用的。8 i% @5 H$ A2 }, K5 k

; f1 S6 s) ]/ I6 }
wolfgang 回答时间:2018-7-9 22:42:26
wenyangzeng 发表于 2018-7-9 22:17
& j. k+ N- x* k' u; i/ N版主没有理解我的思路,那个402、403必须是在cubeMX里修改Active=800,得到802和803.生成工程后,在MDK里 ...

6 B3 \8 J% \* h. a$ I对比一下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 编辑
( @/ B6 S+ ?. M1 U  h' z
50031185 发表于 2018-7-21 09:47
$ b: S. n! I' a! A我在用Cube 感觉也是 会出现各种奇怪的问题,很恶心,  时不时就得重新生成工程 ...
, z4 t/ I9 a( `3 {
只要过程中某一步参数没有设置好,后面就很麻烦了。1楼链接的版主的那篇帖子很具体,可以按照贴中方法进行。
/ \( f$ E; S. Q
KEY1 回答时间:2018-9-18 09:25:25
wolfgang2015 发表于 2018-7-9 21:55
% p: S4 s; {5 [/ ^你图3 原本就是402、403,按照图4修改为802、803后,% i- l  O" f( A: o0 S
后来又按照图6、图7修改会402、403
- {1 q( s* i, C5 r这怎么在围绕打 ...
# v7 `1 w  d( T* V7 k* V, D
是的,我也出现了相同问题,感觉就是方向错了,找了半天没找到地方, 最后搜索关键字找到了
: e: P- X( |0 m, t* ~6 z初始化成了:& o# |; S$ q5 S! Q4 p
OTM8009A_Init(OTM8009A_FORMAT, OTM8009A_ORIENTATION_PORTRAIT);
$ ?, D, d% _/ i7 Z/ }8 R+ L8 _) v- i" f- g
OTM8009A_ORIENTATION_PORTRAIT  指竖屏模式  显示人像方向
+ K4 A6 w+ Y5 F  p4 ~OTM8009A_ORIENTATION_LANDSCAPE  横屏模式, 显示风景方向
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版