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

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

[复制链接]
STMCU小助手 发布时间:2022-8-7 18:48
1.引言
, ~# l# ]% j/ v" A如下图所示,在一个 GUI 显示应用中,TouchGFX 图像库会根据 GUI 显示的输入进行以下处理 :   p+ l* q! M% o; I0 C" }% M8 y
- 收集 -> 更新 -> 渲染
: I0 z+ `, ]/ H2 F/ T, Y" w6 _3 ^在整个图形处理过程中,图像的数据(如 png/jpeg/font 等)会以像素字节流在 MCU 内部和外部传递.由于 GUI 是一个较为复杂的系统,其中包括了很多的部件在同时运行(CPU/Memory/LCD 控制器/操作系统/图形库…),因此在整个 GUI 显示过程中,如果发生显示异常,通过查看图形缓存中的像素字节数据 (如在 memory 窗口中查看一段内存)难以判断绘图过程是否正确.6 {5 ^# b' B/ f  E! Z$ s
基于以上的考虑,我们使用 python 开源包 pyswd 的制作一个 stm32gui-pydfb 的 python 脚本工具,用于实时查看图形缓存中的图像信息.
  I% R) ?7 N9 f
7 w* v5 c2 e1 H. l$ [  d9 c: X
N~TB90}YDGB8WT[Q25HJP8G.png & J( z8 y6 T/ G

# B* |" ^: L. x8 K8 ^" Z

4 ?3 d; g% ]; }* R
  f: g& x) l0 b+ I8 E2.例程开发步骤如下
' A& y' d3 r$ I% G' u) Z2.1 开发环境安装:! B! L' Z1 u% F" H: y% @3 w; ?0 s
2.1.1 安装 minicomda 并设置代理信息.
/ ?6 {5 i9 f3 k. p( Csetting.condarc
) L* Q9 _, m+ w8 _' B. jssl_verify: true
+ @+ a$ p8 B- [! _' gshow_channel_urls: true
* D, b$ B3 }8 F
# s  N; N# j% K% v$ O: u& r2.1.2 创建 python3.9 环境(命令行终端)6 z8 T. X: S+ k9 E* G2 {
conda create -n py39 python=3.9  A* s" ]2 x, L0 n

. M$ b8 F- p3 ?9 \
2.1.3 libusb 安装3 V2 t0 ?1 o% H7 p# r+ o
libusb-1.0.dll 拷贝到 python 安装目录 C:\Miniconda3\envs\py39\6 ?. D5 P' W" s/ `  t' `& p

( e% Z4 v  F. T4 s7 j
2.1.4 pyusb 安装(命令行终端)0 O/ i$ J' s% w, D
pip install pyusb-1.2.1-py3-none-any.whl
. `8 @5 G; L9 }4 B: V' {% w( O, O) I8 n5 ]% R6 S7 i# Q* }
2.1.5 安装 python 图形处理包 Pillow(命令行终端). b) E' n/ U. R& |
pip install Pillow-8.3.1-cp39-cp39-win_amd64.whl
% y$ a* ]* d0 a) b. l  _2 E( F$ v3 ^
2.1.6 pyswd 安装$ I* `& M: r! G, }) f
- 进入 pyswd 目录9 U) z8 ~8 J; T, A! J0 o7 n8 p5 @. {
- 执行安装命令(命令行终端). H' o+ i$ O8 {% d' v
python setup.py install
8 ?) u9 U7 v* [- H$ M
) F9 {: L. o: h) f: c" F
2.1.7 环境测试
5 Z: H, Y6 G6 o+ @* Z-进入到 stm32gui-pydfb 路径并进入 python3.9 的环境.
9 c8 Q3 |4 ~+ K/ L! P
  1. $ > conda activate py39# N. D# s+ k: j9 Y/ c& z
  2. (py39) $ > sh pydfb.sh; X0 ^3 [; q+ R7 m1 q; O. O8 n, B
  3. check the output picture on ./fb folder
复制代码
$ u+ n% S: ?  b( @6 U% p
2.2 :目前支持的板子
" v$ b/ r6 ~: n% z#bconfig="stlink-f746d-rgb565"; P( z2 @/ K; {" \8 ^) |! G
#bconfig="stlink-h7b3-rgb888"- R. k) x8 T8 u% B7 R3 V) o" ]
bconfig="stlink-h7b3-gray4"
# {! a& y) c' |% O! Z
. x. k0 H* v( f2 ~! M4 u5 w
2.3 :如何添加新的板子支持9 u, H9 F  ^+ ?; G) z
2.3.1 目前支持的像素格式为 RGB888/RGB565/GRAY4,分别对应 stlink 目录的三个脚本:. M, J, t8 A- t/ M' j2 D% n
- stlink-rgb888.py
% {* w4 Q( z' I- stlink-rgb565.py
$ M7 M2 L; e" {' c. [( D6 B- stlink-gray4.py( |% k7 _# P  V  U( r7 Q
  1. #bconfig="stlink-f746d-rgb565"0 K/ H: O; f5 c6 `/ M
  2. #bconfig="stlink-h7b3-rgb888"
      w+ ~9 E- ?8 e# T+ J+ [5 G4 y. C
  3. bconfig="stlink-h7b3-gray4"
    - G8 q2 O7 ~8 p, e
  4. echo $bconfig 1 h3 x; r1 d6 }
  5. if [ $bconfig = "stlink-f746d-rgb565" ] ; then
    7 c) V& G7 w& P. P. N, K, J) F
  6. ./stlink/stlink-rgb565.py 480 272 rgb565 0xC0000000 ./fb/$ts-$bconfig-fb1.png' |# Y% [$ }# Z4 U- G% e2 Y7 D4 G
  7. elif [ $bconfig = "stlink-h7b3-rgb888" ] ; then6 u# Q& c- z) ~- J/ [
  8. ./stlink/stlink-rgb888.py 480 272 rgb888 0x24040000 ./fb/$ts-$bconfig-fb1.png8 a: s' B+ o" j! y4 z
  9. elif [ $bconfig = "stlink-h7b3-gray4" ] ; then8 O$ J- X, `' F% h3 s, C1 o7 ]
  10. ./stlink/stlink-gray4.py 480 272 gray4 0x24040000 ./fb/$ts-$bconfig-fb1.png
复制代码
( e! r- `1 a( O7 R' |& |4 {. X( S
5 {5 c8 R0 k, V3 f* e
2.3.2 如果新增加的板子的颜色格式为以上 3 种之一,则采用下面的方法添加,如以下参数 : 9 m, o: P0 P/ y1 M/ Y* @( p
- 颜色格式 RGB888
! p. ^# R/ g. ~! w2 E& L) T- 分辨率 : 800x480
/ S8 [9 H# f/ W- 图形缓存地址 :0xD0000000
) n4 t3 Y* }- s- K1 p5 ]- 板子名称为“f769d”
; s: f" J, I) w) l7 v- L' I; e/ p9 k
完整版请查看:附件
3 c" B7 l) g: `" {2 [4 d9 c
% Z' x) \3 V9 Y* k9 r' {- g
3 X1 e! b% ]$ ^: I
/ Q$ e! k0 G7 L( z  Q' f, f. U2 z

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 手机版