[应用相关]

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

[复制链接]
237|4
手机看帖
扫描二维码
随时随地手机跟帖
豆杀包|  楼主 | 2022-1-25 09:28 | 显示全部楼层 |阅读模式
1.引言
如下图所示,在一个 GUI 显示应用中, TouchGFX 图像库会根据 GUI 显示的输入进行以下处理 :
- 收集 -> 更新 -> 渲染
在整个图形处理过程中,图像的数据(如 png/jpeg/font 等)会以像素字节流在 MCU 内部和外部传递.
由于 GUI 是一个较为复杂的系统,其中包括了很多的部件在同时运行(CPU/Memory/LCD 控制器/操作系统/图形
库…),因此在整个 GUI 显示过程中,如果发生显示异常,通过查看图形缓存中的像素字节数据 (如在 memory 窗口中
查看一段内存)难以判断绘图过程是否正确.
基于以上的考虑,我们使用 python 开源包 pyswd 的制作一个 stm32gui-pydfb 的 python 脚本工具,用于实时查看
图形缓存中的图像信息.  

2458661ef523ecefd6.png

使用特权

评论回复
豆杀包|  楼主 | 2022-1-25 09:29 | 显示全部楼层
2.例程开发步骤如下
2.1 开发环境安装:
2.1.1 安装 minicomda 并设置代理信息.  

setting.condarc
ssl_verify: true
show_channel_urls: true
channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/
proxy_servers:
http: http:$user:$passwd@$addr:8080
https: https:$user:$passwd@$addr:8080

2.1.2 创建 python3.9 环境(命令行终端)
conda create -n py39 python=3.9
2.1.3 libusb 安装
libusb-1.0.dll 拷贝到 python 安装目录 C:\Miniconda3\envs\py39\
2.1.4 pyusb 安装(命令行终端)
pip install pyusb-1.2.1-py3-none-any.whl
2.1.5 安装 python 图形处理包 Pillow(命令行终端)
pip install Pillow-8.3.1-cp39-cp39-win_amd64.whl
2.1.6 pyswd 安装
- 进入 pyswd 目录
- 执行安装命令(命令行终端)
python setup.py install
2.1.7 环境测试
-进入到 stm32gui-pydfb 路径并进入 python3.9 的环境.
$ > conda activate py39
(py39) $ > sh pydfb.sh
check the output picture on ./fb folder



使用特权

评论回复
豆杀包|  楼主 | 2022-1-25 09:31 | 显示全部楼层
2.2 : 目前支持的板子
#bconfig="stlink-f746d-rgb565"
#bconfig="stlink-h7b3-rgb888"
bconfig="stlink-h7b3-gray4"
2.3 :如何添加新的板子支持
2.3.1 目前支持的像素格式为 RGB888/RGB565/GRAY4,分别对应 stlink 目录的三个脚本:
- stlink-rgb888.py
- stlink-rgb565.py  

- stlink-gray4.py
#bconfig="stlink-f746d-rgb565"
#bconfig="stlink-h7b3-rgb888"
bconfig="stlink-h7b3-gray4"
echo $bconfig
if [ $bconfig = "stlink-f746d-rgb565" ] ; then
./stlink/stlink-rgb565.py 480 272 rgb565 0xC0000000 ./fb/$ts-$bconfig-fb1.png
elif [ $bconfig = "stlink-h7b3-rgb888" ] ; then
./stlink/stlink-rgb888.py 480 272 rgb888 0x24040000 ./fb/$ts-$bconfig-fb1.png
elif [ $bconfig = "stlink-h7b3-gray4" ] ; then
./stlink/stlink-gray4.py 480 272 gray4 0x24040000 ./fb/$ts-$bconfig-fb1.png
fi
2.3.2 如果新增加的板子的颜色格式为以上 3 种之一, 则采用下面的方法添加, 如以下参数 :
- 颜色格式 RGB888
- 分辨率 : 800x480
- 图形缓存地址 :0xD0000000
- 板子名称为“f769d”
#bconfig="stlink-f746d-rgb565"
#bconfig="stlink-h7b3-rgb888"
#bconfig="stlink-h7b3-gray4"
bconfig="stlink-f769d-rgb888"
echo $bconfig
if [ $bconfig = "stlink-f746d-rgb565" ] ; then
./stlink/stlink-rgb565.py 480 272 rgb565 0xC0000000 ./fb/$ts-$bconfig-fb1.png
elif [ $bconfig = "stlink-h7b3-rgb888" ] ; then
./stlink/stlink-rgb888.py 480 272 rgb888 0x24040000 ./fb/$ts-$bconfig-fb1.png
elif [ $bconfig = "stlink-h7b3-gray4" ] ; then
./stlink/stlink-gray4.py 480 272 gray4 0x24040000 ./fb/$ts-$bconfig-fb1.png
elif [ $bconfig = "stlink-f769d-rgb888"]; then
./stlink/stlink-rgb888.py 800 480 rgb888 0xD0000000./fb/$ts-$bconfig-fb1.png
fi


使用特权

评论回复
elsaflower| | 2023-3-11 21:33 | 显示全部楼层
gui-pydfb是什么工具              

使用特权

评论回复
minzisc| | 2023-3-14 14:20 | 显示全部楼层
串口输出不可以的吗              

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

47

主题

299

帖子

0

粉丝