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

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

STM32GUI_使用 STLINK+stm32gui-pydfb 工具来实时查看图形缓存的图片

[复制链接]
STMCU小助手 发布时间:2022-8-7 18:48
1.引言
! V; W* U* \8 r2 L$ ]如下图所示,在一个 GUI 显示应用中,TouchGFX 图像库会根据 GUI 显示的输入进行以下处理 :
9 q( ~" }: l, s% o# L9 H- 收集 -> 更新 -> 渲染0 c( w) L; B  \& U, J/ s1 ~
在整个图形处理过程中,图像的数据(如 png/jpeg/font 等)会以像素字节流在 MCU 内部和外部传递.由于 GUI 是一个较为复杂的系统,其中包括了很多的部件在同时运行(CPU/Memory/LCD 控制器/操作系统/图形库…),因此在整个 GUI 显示过程中,如果发生显示异常,通过查看图形缓存中的像素字节数据 (如在 memory 窗口中查看一段内存)难以判断绘图过程是否正确.
- C, E* L7 ?: r- K/ F基于以上的考虑,我们使用 python 开源包 pyswd 的制作一个 stm32gui-pydfb 的 python 脚本工具,用于实时查看图形缓存中的图像信息. 5 e" ?: X+ ~- n
& o9 Q7 Y8 F5 n2 E
N~TB90}YDGB8WT[Q25HJP8G.png
3 g" Y" X7 M1 W( p1 H0 o4 o" t; \, y

9 ?5 N( P/ r, g+ S6 ^# r- A 2 R( J2 I0 s% ~- l3 y
2.例程开发步骤如下 $ ?$ E  t% @. Z6 ^0 y* T  {' @2 M
2.1 开发环境安装:, |9 S9 t% L$ c6 D, h. n. d
2.1.1 安装 minicomda 并设置代理信息.0 U- r. k" W3 L8 \0 E% a" _
setting.condarc4 h- t% H4 L4 C3 T2 K6 ?
ssl_verify: true
" p, z$ }5 l6 `. Zshow_channel_urls: true7 p7 x2 B7 Y2 m/ w, J

7 v- Z1 D8 C2 l2 N4 O! D+ z2.1.2 创建 python3.9 环境(命令行终端)
/ `# l$ u6 g: _9 D9 Cconda create -n py39 python=3.9) ^. t3 Q/ [( Z

# ^3 f+ L: u" o4 y! k
2.1.3 libusb 安装
- d' X! h$ ?! |) \libusb-1.0.dll 拷贝到 python 安装目录 C:\Miniconda3\envs\py39\
) R* d; ]7 \9 v
/ N' l$ M0 N( |3 D" _4 ~4 m
2.1.4 pyusb 安装(命令行终端)2 o) }7 T( x. V6 a. _
pip install pyusb-1.2.1-py3-none-any.whl
( S; ]: s8 y8 ^+ `0 d3 i. G
: F* `) J4 c" }8 L0 q
2.1.5 安装 python 图形处理包 Pillow(命令行终端)- `8 N. E0 T9 W; J% y( U
pip install Pillow-8.3.1-cp39-cp39-win_amd64.whl
/ }) [0 h# i1 u3 s: g' N% \. o/ U4 d
2.1.6 pyswd 安装
3 H2 |2 ]. w! C( A. x- 进入 pyswd 目录
( P; i' d7 c2 {$ v. _+ x- 执行安装命令(命令行终端)
9 l+ u* m9 N7 l; lpython setup.py install
/ d$ F) n2 Y3 n7 m8 P% d$ z! P# a) a: ^3 E
2.1.7 环境测试2 V6 u/ {# _- Q+ C& n% p
-进入到 stm32gui-pydfb 路径并进入 python3.9 的环境.
' z" P! e0 g* v- n
  1. $ > conda activate py39% G; y! E. m$ {0 Y
  2. (py39) $ > sh pydfb.sh1 B. s* L6 C, t
  3. check the output picture on ./fb folder
复制代码

+ K7 _" |* N/ y$ B; c: z9 q: t2.2 :目前支持的板子
% C0 _( g8 |' k% N# k! y  W* }#bconfig="stlink-f746d-rgb565"; s+ ~: S; l% h: C9 E
#bconfig="stlink-h7b3-rgb888") ^! p. d6 u) C* W
bconfig="stlink-h7b3-gray4"
& H2 Q3 y% q3 [3 @5 s5 U6 [$ m5 a" u% x, g% L' g
2.3 :如何添加新的板子支持5 S& T/ |1 E7 l( d& }# f4 C
2.3.1 目前支持的像素格式为 RGB888/RGB565/GRAY4,分别对应 stlink 目录的三个脚本:4 N1 D; J# v/ Y/ ~
- stlink-rgb888.py2 G! c  P# T9 ]+ D& p# {3 ?
- stlink-rgb565.py
/ g& ~/ x7 D; p$ t- stlink-gray4.py
" ^$ ~4 g, n. p
  1. #bconfig="stlink-f746d-rgb565"
    , x# {! O+ n, t; [
  2. #bconfig="stlink-h7b3-rgb888"
    - h: L" L3 s, n0 g' ^" r
  3. bconfig="stlink-h7b3-gray4"/ E( ~( {1 l- U2 y0 `. R* V% S" k* J
  4. echo $bconfig
    1 F' [+ r6 C: Y- }
  5. if [ $bconfig = "stlink-f746d-rgb565" ] ; then& K% O1 W' v$ M+ I! J# l/ ]6 ?
  6. ./stlink/stlink-rgb565.py 480 272 rgb565 0xC0000000 ./fb/$ts-$bconfig-fb1.png: Q; D& H+ _; N; L5 _
  7. elif [ $bconfig = "stlink-h7b3-rgb888" ] ; then$ M0 l8 M) {8 t4 G) s/ B# f
  8. ./stlink/stlink-rgb888.py 480 272 rgb888 0x24040000 ./fb/$ts-$bconfig-fb1.png
    3 ^* Z5 o5 x! ]( k5 s/ F. [
  9. elif [ $bconfig = "stlink-h7b3-gray4" ] ; then/ f' x! u" D2 L! S/ \; @# w
  10. ./stlink/stlink-gray4.py 480 272 gray4 0x24040000 ./fb/$ts-$bconfig-fb1.png
复制代码
  y- W  s9 V6 q5 J

( A( M" n; y) v7 ?0 A2.3.2 如果新增加的板子的颜色格式为以上 3 种之一,则采用下面的方法添加,如以下参数 : 6 r$ I1 D2 j4 ]+ i. |
- 颜色格式 RGB888# d7 D9 b. h* m3 c" @- e& m# Y) o% Q
- 分辨率 : 800x480; G: {! y% ^! F9 U! G1 n
- 图形缓存地址 :0xD0000000
$ e: w3 k2 ]2 f- i- 板子名称为“f769d”
9 h  @9 n3 s% n3 h" W) M  n# Y& \. |
. g# y0 E+ d6 c. J5 M  M8 P! O3 @% ?2 @. N完整版请查看:附件7 ]  a) ~% m$ ?- u" a
6 v& `: u, L4 U/ m  k
& {& {  p) }5 I' [( x  c% D

7 [  T' G8 o8 X5 A' N& R

LAT1093_STM32GUI_使用STLINK_stm32gui_pydfb工具来实时查看图形缓存的图片V1.pdf.pdf

下载

415.1 KB, 下载次数: 2

收藏 评论0 发布时间:2022-8-7 18:48

举报

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