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

基于低成本 STM32 的图形应用

[复制链接]
STMCU小助手 发布时间:2022-8-8 23:23
前言
- _* a+ e) g8 y, S0 w* K. ~8 b越来越多的智能设备会基于 STM32 实现图形界面,而 TouchGFX 是专门用于 STM32 的图形界面设计软件,使图形界面能达到类似智能手机的显示效果。通常,在支持 FMC、LTDC、MIPI-DSI 等 LCD 接口的 STM32,都有着比较丰富的内存资源,SRAM 存放帧缓冲也毫无压力。但在一些成本敏感的产品上,STM32 内存较小,不足以存放完整的帧缓冲,这类产品又如何使用 TouchGFX 来做图形界面应用呢?本文将介绍 TouchGFX 的部分帧缓冲特性,以及基于STM32G0 系列 的移植过程。
" ^7 g4 O* `# a6 Q" ]
部分帧缓冲
" x9 q% ?# [4 l3 A. I, r通常在做图形应用时,需要在 MCU 的 SRAM 里申请一块内存作为帧缓冲:framebuffer。比如使用一个分辨率为
5 W5 m9 ~( W5 V, H# u240x320,16 位色深的 LCD,需要申请的内存大小为:240x320x2 = 153600 Bytes。而很多低成本的 MCU 内存较 小,根本无法满足图形应用对内存的需求。不过,TouchGFX 现在支持部分帧缓冲,仅使用较小的内存作为帧缓冲即可支持图形应用。
+ U5 o& a4 s' f) m4 R3 ^1 a! X
5 ^7 q  J- ~6 ?* a* d
Partial Framebuffer,部分帧缓冲
, R  Q9 d( j3 v9 z1 Z: A对内置了 GRAM 的 LCD 来说,图形显示的过程可以概括如下图: ! r! H4 a- d0 K% q1 ^; a& ~7 N
/ T0 c# [- X5 E
, R, q: Q4 P% f2 V. k% p6 B
8}V8FF9({G3H0L6RAISB@5R.png : Y  ]4 b! \: z
% I' @+ O9 T  h. N, i" O8 X
1, MCU 将图形界面画到内部 Framebuffer& l( s! i$ ]* E7 Z7 g. L
2, 画图过程结束后,将 Framebuffer 内容传输到 LCD GRAM# z9 Y$ O3 u" Y0 h
3, 由 LCD controller 将 GRAM 内容显示到屏幕
& \: J' a4 f$ b6 |' ?如果使用完整的 framebuffer,在上面第 2 步进行传输时,每次传输的都是一整屏的数据。而在很多场景中,LCD 屏幕上变化的区域并不大。比如一个控制界面,可能只有一个小图标会有变化,其它区域都保持不变。我们可以只更新屏幕变化的区域。
* E' P( i2 W! t# c9 A( {: V2 N& S部分帧缓冲与此类似,framebuffer 可以被分成许多个小的缓存块去更新和传输,而这些小块的缓存可以被重用,这样可以极大的减小图形应用对内存的需求。而使用 partial framebuffer 的方式,仅有稍许限制:
/ X2 n; X% m( f% V/ y1, LCD 模块必需要内置 GRAM
+ {! r3 r9 G! E6 D# z* C: _2, 在复杂界面时可能会有撕裂效果- z' Z" L! L4 z4 w

5 H3 @2 J' @- u$ O3 S6 K$ J部分帧缓冲在 STM32G071 上的应用
) M3 r7 T3 N9 v" s2 x! t# A目标板上的 STM32G071 内置 128K flash,36K SRAM,外接 SPI 接口的 LCD,分辨率 240x320 像素,16 位色。按 此 LCD 的分辨率,要支持 TouchGFX 图形应用,必须使用部分帧缓冲特性。
; |# C+ y  K) C' w5 U# Z$ o) x
- g2 h6 \. k4 X# ?# i
配置过程 9 D% T+ O" i6 ~8 q$ X
整个配置过程主要包括以下四个方面:- V6 _3 s5 ^, y9 s7 f
一、在 CubeMX 中,配置 TouchGFX generator 的 display 属性如下图: ' Z- I" a: F+ |  g6 L
• 像素格式: RGB565$ q/ `; [4 `$ o9 M) f7 }8 A+ @
• 宽: 240 像素
8 b. C/ ~; W3 C4 f+ S% i/ v; C• 高: 320 像素
6 d+ e: J4 `, F) O. P* Z• 帧缓冲策略: Partial Buffer
$ N  I" O! m5 k3 S3 q缓冲块个数和缓冲块大小都可以根据需要调整
/ i' Y' E6 h7 N
* ^! E! G3 G5 ]# O* a0 m2 c
; h  S: x! m& T
Z7S7YLED)%T$N2TL}06UV5Y.png 3 z% A! Z4 I# h

/ U8 {+ [7 o* i7 c0 d
二、配置完成后,先由 CubeMX 生成代码。可以看到,会生成 TouchGFX 目录,以及该目录下的配置文件与部分源码文件。
; x: }# D; ^( ?+ G; ]$ c. A. r' R' {5 ?! [1 _- [7 X

1 |/ f6 z  }# U/ p2 P 2FO_~_2PD_UK62HK$UW9}4I.png , z' n$ j8 B- s& U$ I  P6 I6 S2 L; g

6 F4 F. a; p0 F2 v1 `. `
三、打开 ApplicationTemplate.touchgfx.part 文件,即可打开 TouchGFX Designer 工具,如下图。比如,可以添加box 控件作为背景,textArea 控件来显示文本。
! j' X. q7 G  {3 j2 c; m- S
! k0 \- s3 `8 t& e6 D" f$ Q, Z
: n/ b3 F7 l6 {$ }0 S6 r- Z8 E) W$ H
QLB5KZ%SFZ[T[}[}FQ`I2CY.png : N1 S$ S  m4 X
2 I* S4 [, f. ]) ?( M

, m  t% X  |! X& |0 B完整版请查看:附件
( J3 J4 I/ M8 u1 i+ ~3 ~
3 j7 B9 P& A% q6 V6 f& T: J% j+ L& i/ Z' ^- S! w" X! \5 {, b

0 ?, e# b  _6 A. X

LAT0813基于低成本STM32的图形应用v1.pdf

下载

540.18 KB, 下载次数: 3

赞 收藏 1 评论0 发布时间:2022-8-8 23:23

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版