- 2025-01-18
-
回复了主题帖:
H7S-DK使能RTC之后,TOUCHGFX无法正常显示?
lugl4313820 发表于 2025-1-18 12:33
RTC在初始化是要调用获取TICK,来获取系统的滴答时钟,使用了阻塞式的进程,从则引起错误。我记得我在评测文 ...
大概就是RTC在初始化的时候错误使用了计时器,造成FREERTOS的初始化卡死了,万分感谢
-
发表了主题帖:
H7S-DK使能RTC之后,TOUCHGFX无法正常显示?
板卡为H7S78-DK
RTC使能初始化如图:
编译烧录后发现屏幕无法显示,有背光但是无画面。
经DEBUG发现程序移植在RTC里:
想请教下大佬,这个是什么情况,之前做TOUCHGFX没有遇到,是不是H7S的问题?
- 2025-01-17
-
回复了主题帖:
【新年新挑战,任务打卡赢好礼!】第一批获奖名单公布
已确认
- 2025-01-15
-
回复了主题帖:
新年新挑战,任务打卡赢好礼!
完善资料:
回复:
下载: 活动:
学习
-
回复了主题帖:
【Follow me第二季第4期】-任务4:选做任务一(非必做):通过RGB LED不同颜色、亮...
这个滑动平均滤波是选取了多少个数据,会不会对效果有影响?
-
回复了主题帖:
【STM32H7S78-DK测评】3.转轮动效菜单的实现
qzc飘曳 发表于 2025-1-14 22:15
这个生成后能看到才需要的资源是多少吗?
是说占用多少FLASH存储吗?要生成之后编译才能看到
不过我感觉用的不多,图片和视频才是最占存储的,可以看这个TouchGFX_01. 节省Flash存储器内存_哔哩哔哩_bilibili
-
回复了主题帖:
【STM32H7S78-DK测评】2.简单TOUCHGFX点屏
秦天qintian0303 发表于 2025-1-14 21:48
还搞了个阅读权限
不知道怎么设置的,现在应该没有了
- 2025-01-14
-
回复了主题帖:
【STM32H7S78-DK测评】2.简单TOUCHGFX点屏
wangerxian 发表于 2025-1-14 17:05
官方的板子就可以直接用案例,第三方的都得移植,毕竟硬件都会有所不同。
移植也是个心细的功夫活
-
发表了主题帖:
【STM32H7S78-DK测评】3.转轮动效菜单的实现
本帖最后由 电子烂人 于 2025-1-15 14:06 编辑
1.前言
之前的帖子已经实现了基础的TOUCHGFX效果,我们要在这个基础上加上菜单的动效
ST提供了很多小控件,不过还不足以实现我们的效果,这篇文章在原有的基础上试着添加一些定制的转轮控件
2.工程建立
打开之前的TOUCHGFX工程:
在CONTAINERS里添加一个小控件,同时摆放好图标和文字的样式,记录下各个元素的坐标
另外,放一些要用的元素进工程
记得设置下要用到的字体,这边屏幕比较大,选用宋体,45磅:
把控件里的文字也设置好:
回到我们的菜单页面,放置一个scrollwheel转动菜单控件
并在Item Template选择做好的Container,这边设置元素多少,列表外观,以及选择循环模式
在转盘的中央放置一个透明按钮,表示我们按下这个区域
到这里就基本设置完成,生成工程,开始代码端的操作。
3.代码修改
主要流程为:显示转轮效果--->绑定图标和文字--->确认转轮当前所选--->按键进入对应函数--->跳转屏幕
全部代码为C++编译,只展示部分核心内容,.HPP自行修改。这部分代码有参考@NATHAN_XI 同学的代码,在此表示感谢。
mainMenuView.CPP
#include <gui/mainmenu_screen/mainMenuView.hpp>
#include <texts/TextKeysAndLanguages.hpp>
#include <BitmapDatabase.hpp>
mainMenuView::mainMenuView():
scrollWheel1_ItemSelectedCallback(this, &mainMenuView::scrollWheel1_ItemSelectedHandler)
{
}
void mainMenuView::setupScreen()
{
scrollWheel1.setItemSelectedCallback(scrollWheel1_ItemSelectedCallback);
mainMenuViewBase::setupScreen();
}
void mainMenuView::tearDownScreen()
{
mainMenuViewBase::tearDownScreen();
}
void mainMenuView::scrollWheel1UpdateItem(CustomContainer1& item, int16_t itemIndex)
{
item.setListElements(itemIndex);
}
void mainMenuView::scrollWheel1_ItemSelectedHandler(int16_t itemSelected)
{
presenter->menuSelected(itemSelected);
}
model.cpp
#include <gui/model/Model.hpp>
#include <gui/model/ModelListener.hpp>
Model::Model() : modelListener(0)
{
}
void Model::tick()
{
}
void Model::SetmenuSelected(int itemSelected)
{
Screen1Scroll1WheelItemSele = itemSelected;
}
int Model::GetScreenMainMenuScroll1WheelItem(void)
{
return Screen1Scroll1WheelItemSele;
}
CustomContainer1.CPP
#include <gui/containers/CustomContainer1.hpp>
#include <texts/TextKeysAndLanguages.hpp>
#include <BitmapDatabase.hpp>
#include <gui_generated/containers/CustomContainer1Base.hpp>
#include <math.h>
CustomContainer1::CustomContainer1()
{
}
void CustomContainer1::initialize()
{
CustomContainer1Base::initialize();
}
void CustomContainer1::offset(int16_t x)
{
image1.setX(10 + x);
textArea1.setX(110 + x);
}
void CustomContainer1::alphaAdjust(int16_t a)
{
image1.setAlpha(a);
textArea1.setAlpha(a);
}
4.成果展示
[localvideo]4fcdc66405589a79953dbf4bbe61fafb[/localvideo]
后记
部分参考来源:
使用TouchGFX开发STM32界面应用之入门篇(四)-- 定制控件-1 - 简书
使用TouchGFX开发STM32界面应用之入门篇(四)-- 定制控件-2 - 简书
WIKI:https://support.touchgfx.com/academy/tutorials/tutorial-04
再次感谢@NATHAN_XI同学的讲解,这部分自己摸索真的很痛苦
NATHAN_XI的动态 - 哔哩哔哩
-
发表了主题帖:
【STM32H7S78-DK测评】0.测评计划前瞻
这次测评把家底的一张测评券和全部E金币都拿来用了,不整点漂亮的活有点对不起这个板子
测评计划:
本次的板卡主要推广ST的屏幕GUI性能,所以主要测评方向为H7S的图像性能和应用,计划使用STM32H7S制作一个实时温度监护器
第一周:测评板卡外观,熟悉手册
第二周:尝试使用TOUCHGFX驱动屏幕,移植FREERTOS系统
第三周:使用RTC定时器,并联合显示屏实现时钟功能
第四周:增加数字温度传感器,尝试在TOUCHGFX中使用图表控件的方式展示出来
第五周:使用NANOEDGE AI功能,实时监测温度数据异常
第六周:移植网络LWIP协议,并实现数据入云功能
(前四个任务评测期间稳定完成,最后两个做扩展任务)
测评物料:
传感器子板:STEVAL-C34KAT2(E金币兑换)
这个板子上自带ISM330IS和一片STTS22H温度传感器,其中ISM330IS 有 3 轴数字加速度计和 3 轴数字陀螺仪,并嵌入了处理智能传感器处理单元 (ISPU),以支持依赖传感器数据的实时应用,可以在边缘执行信号处理和 AI 算法。基本上是目前最强的工业传感器。而STTS22H电压、超低功耗、0.5°C 精度 I²C/SMBus 3.0 温度传感器,两个强力传感器合起来吊打一切。
唯一美中不足的是这个传感器的接口是给STEVAL-STWINBX1专用的,需要做扩展板,连接器型号为AXF6G3412A。
-
回复了主题帖:
【STM32H7S78-DK测评】1.收到板卡,简单测评
空耳- 发表于 2025-1-14 10:27
羡慕啊
要写好几篇文章,年前都闲不下来了
-
发表了主题帖:
【STM32H7S78-DK测评】2.简单TOUCHGFX点屏
本帖最后由 电子烂人 于 2025-1-15 09:09 编辑
1.前言
板卡玩点灯有点太老土了,不如搞点花活,点屏
touchgfx用到的三大硬件接口技术:FMC(SDRAM)、QaudSPI(NOR FLASH)、LTDC(TFT Panel),这部分的移植可以直接看应用笔记LAT1392;海东青老师的讲解同样很精彩,我这里贴上链接,有需要的朋友去看,笔者不再狗尾续貂。
【应用笔记】LAT1392 LTDC RGB接口 LCD的TouchGFX工程的移植步骤 - STM32团队 ST意法半导体中文论坛
海东青老师的帖子:
STM32硬件基础--LTDC显示图像 - 简书
STM32硬件基础--FSMC/FMC总线控制器 - 简书
STM32硬件基础--FMC读写片外SDRAM - 简书
STM32硬件基础--QaudSPI总线读写片外FLASH(一) - 简书
STM32硬件基础--QaudSPI总线读写片外FLASH(二) - 简书
STM32基础--I2C与触摸屏驱动 - 简书
2.导入TOUCHGFX工程
这个板子的资料完全支持开发上层开发,故直接从TOUCHGFX Designer 里导入移植好的工程,在此基础上修改即可。
两个工程都是基于FreeRTOS来实现的,不同的在于,“24BPP”后缀的这个工程,是“将支持24 bpp图形以32bpp的速度进行所有渲染,然后使用GFXMMU将其打包到PSRAM中的24bpp framebuffers中”(官方解释),我们对图片的要求没有这么苛刻,用左边的工程即可。
老规矩,先放置一个BOX白色底:
之后放置EEWORLD的标志:
编译烧录即可。
3.显示简单动画
只显示一点图像太枯燥了?我们来加点动画:
调个色,我这里直接用的意法经典深蓝配色:
加点弧度以实现过度效果
把做好的素材放到画面之外
另外也把ST标志的素材导入进来,同样也是贴到左侧
添加一个BOTTON,并把透明度拉到0,铺满整个画面
添加一个触发器,当按下按钮时,移动画面
同时按键也给LOGO的移动做动效
生成工程,在工程中找到APPLI部分,烧录并运行:
即可看到精美的开机动画:
[localvideo]ebd7d200266c99460c8aaa8931df8e44[/localvideo]
-
发表了主题帖:
【STM32H7S78-DK测评】1.收到板卡,简单测评
本帖最后由 电子烂人 于 2025-1-14 02:18 编辑
1.收货,开箱
收到了H7S78-DK板卡,心脏骤停,外包装严重破损,盒子上还被板子的尼龙柱捅出来几个洞
先上电看一下板子情况,幸运的是板子目前没有发现损伤。
目前上个开发者保存完好,板子自带的出厂程序都没有修改。。。
2.手册分析
照例先来分析下手册:
板原理图:mb1736-h7s7l8-d01-schematic.pdf
板卡手册:um3289-discovery-kit-with-stm32h7s7l8.pdf
产品手册:Data brief - STM32H7S78-DK - Discovery kit with STM32H7S7L8 MCU
应用指南:How to use MCE for encryption/decryption on STM32 MCUs - Application note
在线上研讨会时,设计的工程师提到,H7s的存储部分设计有参考mpu,最显著的一点是他的片内flash和片外flash功能完全分离,这一点在cube IDE工程里最为显著:工程分为boot(boot flash) 和appli(application flash)两部分,内部 Flash只有64KB,但是H7S提供了高速的XSPI接口,可以直接像MPU那样把底层和上层应用分离开来。
boot flash:底层FLASH,指片内存储器,存储从内部 Flash 运行的引导代码。
application flash :应用层FLASH,指片外存储器,存储从外部 Flash 运行的应用程序代码,一般是应用层代码,包括各类传感器和外设的驱动
ExtMemLoader:外置存储器加载器,专门用于生成 External Loader 的代码。
这三者的区别可以参考下图:
图源:外部存储器管理器和外部存储器加载器入门 - stm32mcu
另外FLASH这部分可以看 许思维老师的帖子,这篇帖子更详细一些:
链接:【STM32H7S78-DK评测】XIP项目源码分析 - STM32团队 ST意法半导体中文论坛
板子上自带两片存储,分别是OSPI flash 和 PSRAM,容量为1Gbit + 256Mbit 算是系列设备里最大的一款了。
况且两片存储都是200MHZ的高速存储,给予H7S足够的UI设计潜力。
板卡带一个型号为800*480的超大屏幕,型号MB1860,和U5A9-DK是同一款,mipi接口,通过转接板和连接器与主控板连接。
板子上接口很多,支持PMOD 、STMOD、Microphone connector、ARDUINO® connectors、MIPI20 connector和Camera connector等多种连接器,同时板子还带有以太网RJ45、SD卡、Audio3.5mm耳机口(极为先进)和两个可以做HID的TYPE-C接口。板载STLINKv3
板子还带一个FANOUT board和一个EWM3080子板,可以外接MIKRO BUS 模块、GROVE模块 和ESP01。
另外说一句,Microphone connector这个对应的子板我真没找到,唯一的一个类似接口子板在F413-DISCO上面,是由5个MEMSMicrophone组成的阵列
3.新建工程
笔者的cubeide无法打开H7S的.IOC工程,应该是cube自带的版本太低了
这边用CUBEMX(6.13.0)演示一下:
比较独特的一点就是,和ST的双核产品类似,能看到每个外设可以指定给BOOT、application抑或是ExtMemLoader
PROJECT编辑时,
另外h7s的memory是可以单独在cubemx里设置的,这一点很适合产品的量产。
- 2025-01-12
-
回复了主题帖:
【回顾2024,展望2025】新年抢楼活动来啦!
24年解决了一个巨大的问题:从校园走向职场。
希望25年能对自己的工作更得心应手一些
- 2025-01-09
-
发表了主题帖:
【Raspberry Pi 5测评】1.系统与OPENCV环境
本帖最后由 电子烂人 于 2025-1-12 11:29 编辑
收到了得捷的树莓派,开箱部分和组装就先跳过;
1.系统镜像烧录
不同于去年一月份玩的,这次树莓派5增加了UBT 24.10的支持,是一个长期支持版本,更好用一些:
要注意,烧录ubt的桌面系统,插卡之后有一段引导配置,需要插屏幕操作;没屏幕的话也可以直接烧录SERVER版本。
UBT24.10的吉祥物是Oracular Oriole 神谕黄鹂、也叫“高深莫测的黄鹂”(oracular:神谕般的,天书般的,高深莫测的),官方的图像是一只简笔画的鸟,周围围绕一圈天体学与神学符号,对比之前吉祥物的更加简洁。
官方介绍:Canonical 发布 Ubuntu 24.10 Oracular Oriole | Ubuntu
鸟儿能有什么坏心思鸟
系统正常进入如图:
2.openCV部分
实在不喜欢在PYTHON里装OPENCV,降低性能
这部分直接参考微雪的历程:树莓派OpenCV系列教程1:开发环境搭建 - 树莓派OpenCV教程 微雪课堂 (waveshare.net)
因为是UBT系统,系统自带PYTHON3不用安装
PIP安装必要的库:
sudo pip3 install numpy
因为是要用CMAKE编译,所以安装依赖:
sudo apt-get install build-essential git cmake pkg-config -y
sudo apt-get install libjpeg8-dev -y
sudo apt-get install libtiff5-dev -y
sudo apt-get install libjasper-dev -y
sudo apt-get install libpng12-dev -y
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y
sudo apt-get install libgtk2.0-dev -y
sudo apt-get install libatlas-base-dev gfortran -y
之后从GIT下载OPENCV源码到本地编译,克隆这一步非常漫长,纯纯抽奖:
git clone -b 4.1.0 --recursive https://github.com/opencv/opencv.git
git clone -b 4.1.0 --recursive https://github.com/opencv/opencv_contrib.git
建议是在电脑上挂梯子下好,再用U盘拷贝到PI5里面
需要先用CMAK生成MAIKFILE,先进入BUILD目录
cd /home/pi/Downloads/opencv-4.1.0
mkdir build
cd build
微雪的教材讲的不够详细,建议自己了解一下CMAKE,再去具体的编译
首推菜鸟教程:CMake 安装与配置 | 菜鸟教程 (runoob.com)
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=/home/pi/Downloads/opencv-4.1.0/opencv_contrib-3.4.0/modules \
-D BUILD_EXAMPLES=ON \
-D WITH_LIBV4L=ON \
-D PYTHON3_EXECUTABLE=/usr/bin/python3.7 \
-D PYTHON_INCLUDE_DIR=/usr/include/python3.7 \
-D PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include \
生成好makefile,然后就是编译opencv了
make
更漫长的等待。。。起码要两三个小时,我这边是直接让PI5挂机,去睡了一觉回来
- 2025-01-08
-
回复了主题帖:
【测评入围名单(最后1批)】年终回炉:FPGA、AI、高性能MCU、书籍等65个测品邀你来~
个人信息无误,确认可以完成测评计划
-
回复了主题帖:
I3G4250D 3 轴数字输出陀螺仪数据手册、封装、驱动代码
感谢虾哥开源
- 2025-01-04
-
回复了主题帖:
【Raspberry Pi 5测评】0.测评计划及前瞻
更新下动态,树莓派和配件已经到货了,装好之后像美式圣诞树
静等更新
-
回复了主题帖:
投票啦:图像处理、通信"小说"、仓颉编程、Altium书籍,先上哪一本?(人民邮电赞助)
其他几本书看着都有点水,偏操作和教程,《通信那些事儿》这本书应该有点意思
- 2024-12-27
-
回复了主题帖:
关于近期学习stm32的一些疑惑望大佬解答,诚心发问
单看视频没用,建议买个C8T6上手做
比如你在看UART,可以做个激光雷达的数据回传