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

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

【TouchGFX分享】裸机移植TouchGFX 初级篇一 附源码

[复制链接]
MP不是MT 发布时间:2020-10-24 17:39
码字不容易,转载请说明出处,本分享基于免费性质,禁止收集倒卖的行为,对上述行为本人保留追究权利。- o3 ?! g2 C) Z
文末扫码关注公众号,获取文章源码
1 c, Z( V2 T: e$ e+ n) q" _5 b* T% I" w/ G, }
【TouchGFX分享】文章合辑
$ V1 r( Z9 Q6 A  H

( B0 W! {% G5 n( {3 ]  `. Z初级篇:. P2 M* y/ W2 ]9 F( R
【TouchGFX分享】裸机移植TouchGFX 初级篇一
' {: u, k* `3 C( `, v' E% p$ O* Z6 Y$ t( T
  • 所用的软件及版本:
    6 J, K7 D2 r* z
  • CubeMX 5.5.0
  • TouchGFX 4.13
  • TouchGFX Designer 4.13
  • STM32CubeIDE 1.1.0
  • Visual Studio 2019
    3 d& g1 K8 w1 b

7 p1 z+ T. T# |4 w
  • 硬件环境:
    6 L9 k; Y# F7 R. ]& g
  • 自制电路板
  • MCU型号:STM32F429IIT6,1M Flash,192K RAM
  • SDRAM:32位16M字节容量SDRAM
  • 显示屏:RGB888,4.3寸480x272
  • 实时操作系统:无
    1 v+ I$ _2 O# I- G
' l* |' J3 k  h1 U; b6 l' j" q
  • 实现效果:
    0 L+ {. ?: y; d  @# a
                                 27.png ) @+ _2 g1 M) D5 u2 c
2 F( x7 ~# Q9 e- Q5 V
  • DEMO说明:
    9 G$ N5 n/ ^$ m7 s: W/ B, r
该DEMO主要介绍TouchGFX快速配置,并显示一个最简单的TouchGFX界面。需要在CubeMX配置的模块为:2 N) L* W" y* ~- \5 A! w
  • 外部高速时钟,外部输入时钟为无源8M晶振;
  • SWD仿真,用于程序在线仿真;
  • FMC,驱动SDRAM用作显存的功能,以及TouchGFX的frame缓冲,对于小尺寸如320x240来说,外部SDRAM并不是必须的,若内部RAM的大小足以支撑屏幕的显示,可以不使用外部SDRAM;
  • DMA2D,用于图形界面的加速;
  • LTDC,用于驱动RGB显示屏,其他型号的MCU可以使用其他显示接口如MIPI;
  • CRC,使用TouchGFX必须要使能;
  • GPIO,用于控制屏幕的背光;
  • X-CUBE-TOUCHGFX。# |2 v' J3 H( x* y1 v5 K
* @2 ~# e: h- Y: v$ L
  • 视频教程:
    1 {7 c$ O, P7 ]  g. N0 n& g
* g! L; Y, O6 h* `6 Z

9 \4 L$ d+ y6 @' z
  • 文字实现步骤:
    / ^* G  @# @4 X; X% _  Q5 u
①下载TouchGFX扩展包;# O0 S5 U7 T: x, z% o9 A
1.png : u& a( C% n) `+ ]5 H
2.png
  q+ x- T  S3 Z: d7 l5 l
! o" @( B: T. t6 R& \②添加TouchGFX扩展包;; P5 Y7 Y& \( b' m
3.png
7 L) Y9 w3 H* F) A, S. h
5 X6 h; B1 R) D③使能外部高速时钟;
0 ?+ L6 @/ S8 C, C0 g 4.png ! E1 E! h8 ]! _
0 |% i& }3 J) Q0 Z' S
④使能SWD仿真接口,如果不使能,程序烧写后,下一次无法进行仿真,此时要重新擦除内部flash内容;
: r4 p0 X/ b  D' I 5.png 7 @6 w2 b% G9 `3 E

7 J" R: G& ?0 `4 y⑤使能FMC,注意根据原理图配置对应管脚,并根据SDRAM的手册设置时钟和时序;
% c6 V+ x2 F; I+ |, G/ s 13.png & _6 z0 D' @* v( G5 e
6.png % w  o1 C3 d7 z
7.png
8 o7 e1 ~/ `3 n& M  U, Q% D9 J8 x+ W) k
⑥使能DMA2D;  G% n+ g5 |. W" d+ Q, P- d
8.png
& w5 N; z2 O" l) K1 f$ d( A, d
/ i/ I# ?; h5 ~; I  T' m⑦使能LTDC,注意根据原理图配置对应管脚,并根据屏幕的手册设置参数,屏幕分辨率为480x272,色深为RGB565,因此屏幕显示需要的空间大小计算公式为宽x高x(色深/8),RGB565色深为16,RGB888色深为24,所以480x272x(16/8)=261120字节,若屏幕配置为2layer,第二层的地址至少偏移261120字节;, @  D* P1 R# r( o/ H
9.png ; A+ i% ]4 r1 f6 v
10.png
% s3 S- W4 |8 n& D 11.png
2 _# Q- h3 a1 {7 r9 O) |( w+ V$ v: B/ _/ U8 W
⑧使能CRC;" }  Q: u' W+ Y+ X- A
12.png 6 o- \' `+ [7 w; a5 S

( M6 M8 N% N& f$ D) R' @, ^⑨使能TouchGFX扩展插件,配置TouchGFX参数;
, E7 ^5 [3 T; \! k. ]$ j( l9 t9 b 14.png 9 n4 S! `( _/ Q/ T7 b4 `" }

9 ?2 q; H+ u0 ^⑩配置NVIC和优先级;9 ]* V. P$ q1 F' {" t
15.png
- u4 ?" q0 D& G# I* e
$ A4 b* a; F1 ~1 o  w+ e配置系统时钟;
: a: }7 i7 R4 H1 C! Z/ v 16.png . ~. \# P$ q3 Q
9 G& Z# Z2 G1 |* J8 ~
设置工程名称和路径,选择IDE和HAL库版本;: @! T2 R- M; {
17.png 1 e1 s& `, x" B
1 ~' b, k" V0 I7 _+ c
点击生成代码;
# N4 X. Q: S, i: {/ }8 i 18.png 7 T$ B7 M- r2 j$ E9 @
1 d7 }4 h& B0 u' p9 a
查看生成的代码文件;
& t! n7 O- b3 }" l' G% c 19.png 2 n, ]; x" C6 C4 V" q- f. k
$ {; J$ n/ D8 a% M3 B7 h
打开TouchGFX Designer导入CubeMX生成的模板;. C" ]" N/ Z1 N
20.png " P. Y" L7 H& l7 k& s5 Y( n
7 d- U! z. z3 O
$ D2 Z& j0 r- M9 f/ L) F
添加一个box控件作背景;
* p# a- v- L* z$ ?: @ 21.png % {6 ?5 P" E# n7 J: }3 C& @
  i/ M/ C* F* Z* K% h
添加一个文字控件;9 u( u9 q7 ~* A# J8 S- S6 x% l
22.png / k9 U! Q" y6 y' @1 V# B

8 n" L, d" y7 Q. L4 A' R修改box控件的名称,尺寸;: E, A# {9 {0 |4 W" C
23.png
) U% ?  B3 z- O" p! f4 O) x& N+ ~& X% g: W
修改box控件颜色;, f8 k7 M& v. v: U- y& V4 V
24.png
% \, [0 X- c% A# G) s& {1 N. K$ P( C3 u1 G! }
修改文字控件的名称,位置,文字内容,字体和颜色;" C" e* K) b  v7 |
25.png % Q7 x+ N* M% {8 o6 t) B1 G6 T

! f: g! ?1 Z7 z点击生成代码;: C1 z: w. z& C9 l: A  \* {
26.png
) [2 r; m, j1 b% }8 O0 D( v
" {6 S5 G$ ?7 C打开STM32CubeIDE,导入工程;- S: a6 g1 B# i, q: W' b4 y
28.png
: p. K, j3 L. o. x3 ~* g 29.png
7 z) A- n* }. h& w/ @/ o 30.png 5 t. G  }/ U0 g8 M
31.png
! z9 D$ K" H: B) Y2 u0 }$ B! G
5 x% |  P9 F0 X; G2 _添加SDRAM刷新初始化函数和相应头文件;! b8 I& L$ Q6 B0 C2 n& O3 p1 v7 ^
32.png ! O/ M& S) \: h$ j7 q/ _: ]; K
33.png
0 [+ ?, {4 `* B6 w5 D 34.png - w( {7 H6 ^6 c3 K6 Q

2 T% k) v, T/ |+ u添加头文件路径;
: |0 q2 Y( N% T! `. H 35.png   g# y6 E( \% L# u2 q
36.png
3 J5 Z! l' J! m* c 37.png ' s3 e3 f8 G6 i, U; n
' ]( [9 z6 h/ ~! ^9 X1 P3 o
点击编译;8 H5 e, s! y% D+ Z: p$ Q! h; A
38.png
# q" _' r  Z6 q5 O+ c- ]8 ~3 U% ]. c, ^7 Z' X. R
点击仿真;
( d( Q/ U7 f+ |' T 39.png
; W, h3 Z+ n, I
# ]) N  ^4 C/ S+ u/ |! C2 `( K最终下载到板子上的效果如下,本次分享结束。
" t2 I- p. v' Z0 { 微信图片_20201024152744.jpg , I8 ]2 L" t) ?; q: S8 _' m7 J$ O

3 p9 j) K( b# I7 R) h2 M0 M7 u. `% x: o2 O- z# m
扫码关注公众号,回复"101"获取文章源码:
. F7 W- y2 i) i* ~                                     4 t6 Y3 v) [! H5 V; a
1 X  [- G0 ^) Y' F' Q: y9 y' h' Y
码字不容易,转载请说明出处,本分享基于免费性质,禁止收集倒卖的行为,对上述行为本人保留追究权利。+ [) c$ c6 C& U/ p! j
" _! R: A; z8 F- W

/ t# m* @- f4 A! i
" r: z# {( M* g# z+ a9 [
" I' X) L! R" d' U) `4 W: ^( L: n; C
" c6 Z' W$ }  |0 D* Z7 k- ]7 V

% j$ o# k* e, [5 N+ ]- ?$ s8 C5 `, `; x& Y! P
- h3 T6 B; y6 C1 N! d7 W# k8 p2 h

5 l" H6 ^$ m% F1 O+ x" E9 U# \6 k3 J4 f

' c/ t; K: s6 M3 J  o
1 收藏 1 评论3 发布时间:2020-10-24 17:39

举报

3个回答
成长yeah 回答时间:2021-1-26 09:21:30
赞,学习了
lhdboy1988 回答时间:2021-1-28 16:16:10
感谢楼主!写的很好,看来是自己做的板子,正需要从零开始移植这方面的资料。
夏颜真 回答时间:2021-6-24 17:32:17
请问老大,我的板卡是STM32H7B3I ,下载TouchGFX 模板,自己加入UI文件,配置UI为RGB888(只能有这个选项),更新工程后。编译下载,运行后屏幕花屏。但是用TouchGFX目标板仿真却没有问题。请问啥问题?
, _) k$ @1 D  b$ B5 Z0 j  q8 e7 n

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版