请选择 进入手机版 | 继续访问电脑版

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

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

[复制链接]
wenyangzeng 发布时间:2018-7-9 13:42
本帖最后由 wenyangzeng 于 2018-7-10 20:20 编辑
7 ~3 m. w/ Y# Z/ _9 G" a( z  y2 b2 k; G- i
CubeMX配置STM32F769I GUI过程出现的BUG及解决方法

0 Q: b  K1 e. q: f5 T5 G; D: Z
# I8 K7 ?- Q; \

5 D' }# @# x3 y
9 `! P: w- a2 ~
    按照帖子介绍的方法,很快就配置完成了STM32F769I DiscvoeryGUI工程。可能所用的CubeMX4.26.0版本与版主的不同,编译下载后运行结果如图1,图像显示不正常。
- I( g2 f# S, I; M, H  R8 d# D
1.png
                             图1

0 C* [7 ]4 ?! M# Z- M
这个demo背景色是黑色,从图中可以看到H方向水平扫描大概只扫描了屏幕的一半400DPI,好像是从下往上扫描而不是从左往右扫描。右边的彩条是复位时留下了的。
9 D+ N* e. E  I' O5 H
针对400DPI进行分析

% r* [. w/ Q$ B9 L- U
步骤1
尝试将MX_LCD_Init()函数中的
hltdc.Init.AccumulatedActiveW=402改成802
hltdc.Init.TotalWidth=403改成 803;参见图6
1 k3 f9 U2 x0 S/ E
编译运行后结果如下图2:

3 R& ]7 h" O2 k) P6 J
  e3 L) d9 ]% h% T4 _, \
2.png
                                图2
) k7 c* L6 F6 n$ J+ M
H方向拉长了,W方向没有改变,问题还是没有解决。
& k; X$ e! |/ r7 \8 U  o* C2 v# z
步骤2
回到CubeMX
; m5 Q# f% O6 z5 l3 Z
3.png
! {% w* j3 J9 f/ o. T
                        图3
6 ?4 Z, H6 Q7 M
- |3 \: B8 J  e/ o0 m
修改CubeMXLTDC Parameter参数配置将Activa width400修改成800
* k2 P% M2 q7 r9 Z4 m7 V
4.png
                                  图4

7 p( }$ m2 q3 }, V( L
重新生成工程,编译下载运行,结果见图5:
9 R2 v+ P. t# l/ {6 F
5.png
                             图5
, k* n, b; o) D5 R) `) X
W方向扫描正常了,但H垂直方向坐标明显有误。
& _% o: v5 m- @6 q
先小结一下:
为什么在MDK中直接修改函数参数Activa width(步骤1),改变W方向扫描无效?
而在CubeMX中(步骤2)修改Activa width生成新工程有效,改变W方向扫描有效,但H方向坐标出错?
判断:可能是CubeMX的一个BUG。大概从CubeMX中更新工程时不只更新了MX_LCD_Init()函数的内容,应该还有某个文件也更新了,但更新对象错了,可能是W坐标数据更新到H坐标数据去了
% ~; c% `5 g* T1 r. M$ W' ?; r- K
这个BUG只能靠ST专家来解决了,我们只能用修补的办法来应急使用:
既然我们从CubeMX中(步骤2)修改了ActiveWidth=800,W方向扫描就正常了,H方向扫描却错误了。
而我们在步骤1修改的:hltdc.Init.AccumulatedActiveW   和  hltdc.Init.TotalWidth 的参数可以影响H方向。
$ |: t3 F% H  ~0 G2 k7 ?5 A$ O
修改步骤(2步)
1、先在CubeMX中修改:Activa width=800,(图4)
生成新工程(一定要生成新工程!!)。
2、然后在MDK下修改修改MX_LCD_Init()

, e0 C" J0 z( m# ?
  hltdc.Init.AccumulatedActiveW = 402;  //(原802)
  hltdc.Init.TotalWidth = 403;                 //(原803)
& M/ ~! a! X( T* u
图6改成图7的参数:
0 q) o  z- v9 C( S' |- R$ t
6.png
                                图6
. j, M1 Z5 |9 Z3 g2 e

( o% h( `, o* {. J* q! ?4 _6 v0 A- q! E3 n* f/ f7 C
7.png
3 g# z4 q! t; _+ }
                               图7

) n" G! a. Y- N' A
编译、下载、运行:

/ N! v8 ~6 `2 [$ K" V9 H! g
OK!

  ]  b6 m* L+ b! e$ |
8.png
                          图8

" l/ @/ Z: J, M* K# `
使用不同版本CubeMX的朋友也要试试哦!

1 S2 `8 y0 M4 \# U5 A
8 ]" D& N: M* e
* s+ _# L, Q# |, |, b8 [* D0 h# [2 H
$ \; V0 u4 A8 K
  ]) F! J7 s8 Z8 {+ K. m. ~
收藏 评论12 发布时间:2018-7-9 13:42

举报

12个回答
wolfgang 回答时间:2018-7-9 21:55:37
wenyangzeng 发表于 2018-7-9 16:07+ P7 X5 l8 C/ ?  M# D' [1 \
CubeMX按照图4修改后生成新的工程,图4 里的802、803在MDK里显示在图6的参数中,不改成图7就显示图5的图像 ...
: n. p# k& k# J; u! u7 i3 @
你图3 原本就是402、403,按照图4修改为802、803后,. h( V& V! c: d  `
后来又按照图6、图7修改会402、403& d2 B% s% ]- ~* B
这怎么在围绕打转呢?这个402、403修改来修改去,
" R0 ~& D5 ~5 t; Y- X3 Q
3 H/ |0 `3 n, a- C6 ^" R其实你没说到问题的重点,看我原贴后边的 补充说明( \7 M% g  L- S% o) L; K' u
针对图一,最终还是
) {, n7 E% K6 Q; |/ `; d5 \OTM8009A_ORIENTATION_PORTRAIT 和 OTM8009A_ORIENTATION_LANDSCAPE 的问题
0 G7 |8 g+ N. C$ s7 n! z0 T4 ?  W* ?# P$ N2 U! l0 z& W+ h* |

9 _+ C- M* j2 C7 W- L4 l7 `
wolfgang 回答时间:2018-7-9 14:51:28
1.jpg 4 I; U: E, \/ o
应该是某些参数没设置对造成,不过我看你的内容,之前不就是402、403?
4 v8 r/ c% g7 ~# n2 e. h' ~3 x) ], M- K1 v- \

5 e. c' w2 M: X# a' V7 b我的CubeMX与你的事一样的。 4.26; L2 b; X/ s7 |/ J% T- J
wolfgang 回答时间:2018-7-9 14:53:18
不过还是值得恭喜,开启了 MIPI DSI学习的大门
wenyangzeng 回答时间:2018-7-9 15:04:51
wolfgang2015 发表于 2018-7-9 14:510 g  y# Q* d( q/ O
应该是某些参数没设置对造成,不过我看你的内容,之前不就是402、403?
0 y* V; u; p" V- G0 H
Active=400时,底下2个是402、403 ,显示不正常
5 p+ _; C/ f- N) M& J9 F. PActive=800时是802,803
wolfgang 回答时间:2018-7-9 15:31:23
wenyangzeng 发表于 2018-7-9 15:04
3 i+ H- ]4 y$ _2 G, F1 j$ E3 P, fActive=400时,底下2个是402、403 ,显示不正常) Q- C# N# O2 ?. u% |0 M/ \
Active=800时是802,803

+ f7 P* M% l% k' c2 O我是说“图6改成图7的参数”这里
3 P$ u- P2 f. N5 x$ G) G/ F; E这不是也配置成为:402、403
+ j* D9 Z- I# l/ R& ^
wenyangzeng 回答时间:2018-7-9 16:07:46
本帖最后由 wenyangzeng 于 2018-7-9 16:14 编辑 8 X% W' T. }, _* R
wolfgang2015 发表于 2018-7-9 15:31
- _; k! |. G1 E( |, a我是说“图6改成图7的参数”这里
9 C6 h4 h3 ^5 Y" z这不是也配置成为:402、403

, I' G1 _* ~6 R. R& {CubeMX按照图4修改后生成新的工程,图4 里的802、803在MDK里显示在图6的参数中,不改成图7就显示图5的图像了。
wenyangzeng 回答时间:2018-7-9 22:17:09
本帖最后由 wenyangzeng 于 2018-7-9 22:19 编辑 8 L9 ^4 I5 J% c8 t9 r$ |! z( s4 Z2 S
wolfgang2015 发表于 2018-7-9 21:55
5 r: ~9 T  `# l) H3 e( C% f你图3 原本就是402、403,按照图4修改为802、803后,* }5 d0 u7 O, T  E/ j7 k
后来又按照图6、图7修改会402、403
9 a: _) W! u5 c7 \4 h7 j* F7 x/ S这怎么在围绕打 ...

* k7 G0 r1 ~/ s! L! }9 M版主没有理解我的思路,那个402、403必须是在cubeMX里修改Active=800,得到802和803.生成工程后,在MDK里改回402和403.没有打转。cubeMX里不修改,没有生成新工程,在MDK里改没有用的。
, z% d+ m$ F2 ^" ?6 A" P
, ]* A+ `8 t! w
wolfgang 回答时间:2018-7-9 22:42:26
wenyangzeng 发表于 2018-7-9 22:17
: Y5 n: U/ ~* z9 Z版主没有理解我的思路,那个402、403必须是在cubeMX里修改Active=800,得到802和803.生成工程后,在MDK里 ...

# B: c3 x6 e! {( q' a' O# C: y' T" B对比一下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 编辑
1 A% r$ n4 u. A0 P: P& S- m$ o, Q
50031185 发表于 2018-7-21 09:47( q1 D3 D' k* ]5 H' a
我在用Cube 感觉也是 会出现各种奇怪的问题,很恶心,  时不时就得重新生成工程 ...

1 |2 V8 {: p8 z% u) x只要过程中某一步参数没有设置好,后面就很麻烦了。1楼链接的版主的那篇帖子很具体,可以按照贴中方法进行。
4 v8 K! [* m5 k+ @% L
KEY1 回答时间:2018-9-18 09:25:25
wolfgang2015 发表于 2018-7-9 21:55
1 V6 o+ x! h) w7 G/ R你图3 原本就是402、403,按照图4修改为802、803后,0 U4 e3 D- ?5 l
后来又按照图6、图7修改会402、403
) [  R7 i( r; p: W* T; u9 ^这怎么在围绕打 ...

7 t" E' c6 E2 B& H2 |& S3 n' B是的,我也出现了相同问题,感觉就是方向错了,找了半天没找到地方, 最后搜索关键字找到了
& t6 f. f4 G' @+ u4 e# @2 R6 D. B! `初始化成了:0 u6 c7 K6 g5 \. A
OTM8009A_Init(OTM8009A_FORMAT, OTM8009A_ORIENTATION_PORTRAIT);7 l% u/ G2 f8 @4 _* S

3 H) ~% a* I# ?OTM8009A_ORIENTATION_PORTRAIT  指竖屏模式  显示人像方向
) E7 a# x2 b( Y. AOTM8009A_ORIENTATION_LANDSCAPE  横屏模式, 显示风景方向
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版