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

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

[复制链接]
STMCU小助手 发布时间:2022-8-7 18:48
1.引言 1 V/ ]( n6 }3 J9 O
如下图所示,在一个 GUI 显示应用中,TouchGFX 图像库会根据 GUI 显示的输入进行以下处理 :
6 S) K$ U  g+ P) P$ E2 Q- 收集 -> 更新 -> 渲染
) m* ~" v( R. Y( ~在整个图形处理过程中,图像的数据(如 png/jpeg/font 等)会以像素字节流在 MCU 内部和外部传递.由于 GUI 是一个较为复杂的系统,其中包括了很多的部件在同时运行(CPU/Memory/LCD 控制器/操作系统/图形库…),因此在整个 GUI 显示过程中,如果发生显示异常,通过查看图形缓存中的像素字节数据 (如在 memory 窗口中查看一段内存)难以判断绘图过程是否正确.! Q$ G5 ?+ ^6 C6 i0 ^
基于以上的考虑,我们使用 python 开源包 pyswd 的制作一个 stm32gui-pydfb 的 python 脚本工具,用于实时查看图形缓存中的图像信息.
, E5 K! }. i- h. z* O& I+ W( Z6 |9 u$ d

$ b1 A" T5 M! @6 m6 j; \, b* A N~TB90}YDGB8WT[Q25HJP8G.png 6 M' B( L$ O% f' i5 f  |- ^, I: l
8 k! n+ E" e# w; Y( e; u# r
4 O. a8 S& Q4 ]# O; f; b' W4 U

3 a- }1 _: y4 R' H+ b2 L. t8 S2.例程开发步骤如下
; i/ X( ?" Z% P+ r. _2.1 开发环境安装:
: i' \1 t; _% D2 C3 C0 _' l7 t! n2.1.1 安装 minicomda 并设置代理信息.
2 R* `6 N. l! w7 B0 W9 Usetting.condarc
/ z* ]! a3 o) i6 k2 W# J* zssl_verify: true
( X2 S! g. i9 q( B1 mshow_channel_urls: true
" N9 ]) t/ l5 y" W
" y8 [9 x# X& |! h8 C! C6 W' ~2.1.2 创建 python3.9 环境(命令行终端)
: ^+ a- E& j! t4 O. Zconda create -n py39 python=3.93 j3 |, E" I0 ?% S: j1 c1 \

- K) l. @# f/ I: n" [3 h8 p
2.1.3 libusb 安装
( M: \0 P  S$ Jlibusb-1.0.dll 拷贝到 python 安装目录 C:\Miniconda3\envs\py39\
9 V6 r* d7 p8 y7 |2 D" z+ J0 K1 E0 D7 W4 q
2.1.4 pyusb 安装(命令行终端)
$ ?. [# \5 i9 R, _8 `! Upip install pyusb-1.2.1-py3-none-any.whl7 t9 e# }" O: y- K' c# k
+ }* V4 z) @: f/ Q5 N3 T+ _7 W
2.1.5 安装 python 图形处理包 Pillow(命令行终端)
2 b& `3 J1 u5 a: y% ypip install Pillow-8.3.1-cp39-cp39-win_amd64.whl
1 N3 w7 A- K4 q# `
& s5 k: n0 ?$ ~6 K% y
2.1.6 pyswd 安装
4 i9 k4 r) Z3 S. g1 F; k& A- 进入 pyswd 目录
7 P" t( P* _9 P* c2 I- d0 ?1 T- 执行安装命令(命令行终端)
: h' u* `7 z0 I  H* f9 N/ bpython setup.py install & W1 q" K+ z' y9 L0 P3 e" v- `
6 q9 e; X  S% C2 T6 x7 W& D
2.1.7 环境测试4 o- y7 g9 y- c! z$ P$ [
-进入到 stm32gui-pydfb 路径并进入 python3.9 的环境.2 d/ `6 ^& ]2 R. u8 S) t6 z
  1. $ > conda activate py398 y8 M. H) C5 ]
  2. (py39) $ > sh pydfb.sh1 k+ Y  y9 ?% P9 }
  3. check the output picture on ./fb folder
复制代码
, n9 R% j3 t4 P6 z- F5 y: e) K
2.2 :目前支持的板子
8 }: ?4 `, P) g; y# c+ W#bconfig="stlink-f746d-rgb565"
9 N1 y! G9 U) f#bconfig="stlink-h7b3-rgb888"+ Y& l  `9 Q3 `0 V8 r# h
bconfig="stlink-h7b3-gray4"& }3 Z+ u/ i" I  {+ q, b

& r. {- T1 Y1 [6 q1 z5 J% A6 i
2.3 :如何添加新的板子支持+ |9 A0 Z0 G9 q+ r
2.3.1 目前支持的像素格式为 RGB888/RGB565/GRAY4,分别对应 stlink 目录的三个脚本:; c% E9 g5 {( e3 `7 Y
- stlink-rgb888.py
/ Z9 t2 Q8 e) D, {# f0 D) r  y$ M0 v" J: W* L- stlink-rgb565.py
8 V- S; b* a$ p& X7 ^) R- stlink-gray4.py5 i, X& [5 S7 q
  1. #bconfig="stlink-f746d-rgb565"2 F+ T! J! B1 ?3 e6 }
  2. #bconfig="stlink-h7b3-rgb888"7 P- |* i3 l) G  Y* `& n0 e
  3. bconfig="stlink-h7b3-gray4"" e  O  @8 _  y  Y* z) A  \7 H" T
  4. echo $bconfig
    $ c5 b% l; W! a" R9 M
  5. if [ $bconfig = "stlink-f746d-rgb565" ] ; then2 h2 U1 P; K" k5 \2 {
  6. ./stlink/stlink-rgb565.py 480 272 rgb565 0xC0000000 ./fb/$ts-$bconfig-fb1.png; }# c3 K' j# a, M
  7. elif [ $bconfig = "stlink-h7b3-rgb888" ] ; then& |/ n, l' w" C1 a9 I1 |8 ~
  8. ./stlink/stlink-rgb888.py 480 272 rgb888 0x24040000 ./fb/$ts-$bconfig-fb1.png* F; v2 y, m4 W; N* I4 J; ?3 v
  9. elif [ $bconfig = "stlink-h7b3-gray4" ] ; then
    . V7 s1 r1 R3 D& f" K- a( ?9 L
  10. ./stlink/stlink-gray4.py 480 272 gray4 0x24040000 ./fb/$ts-$bconfig-fb1.png
复制代码
  s) H* w3 _3 j/ |

( S4 U/ ]+ K0 [( L' N2.3.2 如果新增加的板子的颜色格式为以上 3 种之一,则采用下面的方法添加,如以下参数 :
$ N& D! y8 X2 p+ D- 颜色格式 RGB888" D$ y! w" z1 I/ W' a
- 分辨率 : 800x480" b2 Y# L, i4 p' j, J8 Q6 i
- 图形缓存地址 :0xD0000000
: ^; U) Y4 N0 M* V8 w* w5 E- 板子名称为“f769d”+ G0 }8 k6 U' i8 m( n. b4 Q% |( ^

  V6 \; q# Y1 g1 Y: \! u" ]) f完整版请查看:附件. N. @2 X3 P9 b- C8 u+ ~
9 C' |) t8 j' s! ^

( }% f" C2 k! }- ?) u$ g% p8 r# K2 |- i7 e7 _! B

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

下载

415.1 KB, 下载次数: 2

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

举报

0个回答

所属标签

相似技术帖

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