当前位置: 首页 > news >正文

STM32CubeIDE_Programmer_Touch GFX 应用

@

目录
  • 0. 通用
    • 0.1 .stldr 文件 - External Loader(外部存储下载算法/驱动)的使用
  • 1. CubeIDE
    • 1.1 安装
      • 1.1.1 【异常】安装STM32CubeMX 平台时遇到缺乏Java 环境问题
    • 1.2 使用
      • 1.2.2 编译
      • 1.2.3 生成hex、bin 烧录文件
      • 1.2.4 仿真调试
      • 1.2.5快捷键
      • 1.2.6 串口打印相关
        • 1.2.6.1 串口打印支持中文输出
        • 1.2.6.2 串口打印支持浮点数
      • 1.2.7 全局搜索
      • 1.2.8 查看代码占用Flash 情况
      • 1.2.9 包含头文件
      • 1.2.10 运行后重启单片机
      • 1.2.11 查看该行修改前内容
  • 2. Cubeprogrammer
    • 2.1 安装
    • 2.2 使用
      • 2.2.1 查看芯片内部Memory
  • 3. CubeTouchGFX
    • 3.1 安装
    • 3.2 使用
      • 3.2.1 PC 端仿真
      • 3.2.2 部件
      • 3.2.3 交互
      • 3.2.4 图像面板
      • 3.2.5 文本管理面板
      • 3.2.6 配置面板
      • 3.2.7 工程中图片存放的位置


本文中使用的 STM32CubeIDE 版本为2.0.0

0. 通用

0.1 .stldr 文件 - External Loader(外部存储下载算法/驱动)的使用

.stldr 文件是ST 工具链(STM32CubeProgrammer / STM32CubeIDE)用于 外部存储器(QSPI/OSPI/SPI/FMC/SDMMC…)烧录 的 External Loader 文件。它本质上是一个“可执行的下载算法”,没有 .stldr文件,CubeProgrammer/CubeIDE 就不知道如何通过你的 QSPI 外设去操作外部Flash;

  • 强硬件绑定:External Loader 通常 绑定MCU 型号 + 外设实例(QSPI/OSPI) + 引脚连接 + Flash 型号/容量/擦写粒度 + 时钟/分频。任何一项变化都可能导致 loader 无法识别/擦写失败;

  • 放置路径

    • CubeProgrammer:一般把.stldr文件复制到 STM32CubeProgrammer 安装目录下的:…/STM32CubeProgrammer/bin/ExternalLoader/;
    • CubeIDE:一般把.stldr文件复制到 <STM32CubeIDE 安装路径>/plugins/com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.xxx/tools/bin/ExternalLoader;也可以在CubeIDE 中直接配置指向CubeProgrammer 的文件路径;
  • 软件内配置

    • CubeIDE:Run - Run Configurations - 选择/新建一个STM32 C/C++ Application 的调试配置 - Debugger 选项卡里找到External loaders 区域 - 点击Add,从列表里选择.stldr文件 - 勾选Enabled,并按需要设置Initialize(大多情况下都勾选,在Boot+App 的代码结构下,可以选择不勾选);另外,建议取消勾选Verify flash download(外部 Flash 校验会显著拖慢下载或在某些 loader 上不稳定);
  • Initialize:勾选“Initialize”后,在调试会话开始自动调用该.stldr 的初始化函数(Init),让外部存储器/外设(QSPI/OSPI/FMC…)被正确初始化,从而可以继续执行擦写、下载或访问外部存储器;
    在boot+appli 的代码结构下,外部Flash 的初始化责任通常在Boot 固件里(Boot 会把OSPI/QSPI 配到memory-mapped 并完成跳转前准备),调试器再去“reset 后自动调用loader Init”可能会造成重复初始化或改变期望的启动链路;
  • 对于Boot+App 的工程下载/调试
    1. 将Boot和APP 的工程都在同一个WorkSpace 中打开;
    2. Run - Run Configurations - 选择APP 的调试配置 - Startup - Load Image And Symbols页面 - 点击Add,选择Boot 工程,其他配置按需勾选:
    • 情况1: Boot 经常改(一键全刷:Boot + Appli)
      • External loaders:Enabled ✅ / Initialize ❌ / Verify flash download ❌
      • Startup → Load Images and Symbols:
        • Boot:Perform build ✅、Download ✅、Load symbols(可选)
        • App:Perform build ✅、Download ✅、Load symbols ✅
    • 情况2:Boot 已稳定(只刷 App,Boot 不动)
      - External loaders:Enabled ✅ / Initialize ❌ / Verify flash download ❌
      - Startup → Load Images and Symbols:
      • Boot:Download ❌(或者直接不添加 Boot 下载项),但可以保留其symbols 以便需要时调试跳转处
      • App:Download ✅、Load symbols ✅

1. CubeIDE

1.1 安装

STM32CubeIDE 生成的代码只能在该软件内编译、下载、调试,不能用于其他IDE(如Keil5等);要在别的软件操作代码,需要使用STM32CubeMX 重新生成;

运行STM32Cube 系列软件需要Java 环境的支持,具体到Java 官网下载,详见1.2.1节;

  1. 到ST官网STM32CubeIDE 下载页面
  2. 登录账号,找到软件开发工具,选择要下载的软件,安装(安装路径不能有中文);
    在这里插入图片描述
  3. 第一次打开,设置工作区(路径不能有中文),以后新建的工程都会默认保存在工作区中;
    在这里插入图片描述
  4. 在help - Manage Embedded Software Packages 中安装芯片扩展包,如下面安装STM32F1 最新的扩展包,注意需要在登录状态下才能安装;
    在这里插入图片描述
  5. 在生成代码前,在项目管理中,勾选以下选项,实现源文件与头文件代码规整:
    在这里插入图片描述

安装包路径和安装路径都不能有中文

1.1.1 【异常】安装STM32CubeMX 平台时遇到缺乏Java 环境问题

安装STM32CubeMX安装包时,弹出下图报错窗口。
在这里插入图片描述
原因是电脑没有JAVA环境,到JAVA SE网站点击下载JDK文件,选择对应工作环境下载安装包(如Windows x64),安装安装包,然后再安装STM32CubeMX安装包。
在这里插入图片描述
在这里插入图片描述

  • 检查是否安装成功:在cmd 中输入java -version:若有如下图版本号回复即可;
    在这里插入图片描述

参考:https://www.runoob.com/java/java-environment-setup.html#win-install

1.2 使用

1.2.2 编译

编译的两个选项:

  1. Debug:调试版本,编译结果包含调试信息,且不做优化,支持单步调试;
  2. Release:发布版本,优化编译,使得代码大小与运行速度上都是最优;
    在这里插入图片描述

1.2.3 生成hex、bin 烧录文件

右击工程 - properties,如下图勾选两个编译输出选项,应用保存,再次编译,即可看到已生成的烧录文件;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注:生成bin、hex 烧录文件在Debug、Release 编译模式中,需要各自设置一次;


1.2.4 仿真调试

连接好硬件,点击调试按钮,进入调试模式:
在这里插入图片描述

在这里插入图片描述

1.2.5快捷键

在这里插入图片描述
在这里插入图片描述

1.2.6 串口打印相关

1.2.6.1 串口打印支持中文输出

GCC 内部使用的“源字符集”默认以 Unicode/UTF-8 方式处理,需要通过以下配置让GCC 在编译期把字符串/字符字面量转换成GBK 编码的字节序列写入最终固件,最终实现串口打印支持中文输出;

  • 配置方法:右击项目 - Project Properties → C/C++ Build → Settings → Tool Settings → MCU/MPU GCC Compiler → Miscellaneous - Other flags - Add - 填入-fexec-charset=GBK

1.2.6.2 串口打印支持浮点数

  • 配置方法:右击项目 - Project Properties → C/C++ Build → Settings → Tool Settings → MCU/MPU Setting → 勾选最下面的"Use float with printf from..."

1.2.7 全局搜索

点击如下图图标,快捷键Crtl + H:
在这里插入图片描述
在File Search 中填入搜索目标;
在这里插入图片描述

1.2.8 查看代码占用Flash 情况

先编译一次现有工程,在右下角的Build Analyzer 处点击刷新,即可查看;
在这里插入图片描述


另外,也可以手动计算,先编译一次现有工程,在编译信息中,找到如下信息:

   text	   data	    bss	    dec	    hex	filename53092	    500	   3796	  57388	   e02c	xxxx.elf

textdata 相加的结果即为该工程下载到芯片后占用内部Flash 的大小,单位为字节Byte;byte/1024=kB,kb/1024=MB;

1.2.9 包含头文件

在右击工程 - properties 中如下图位置添加头文件;
在这里插入图片描述

1.2.10 运行后重启单片机

菜单栏 - run - run configuration,如下图位置选择;
在这里插入图片描述

1.2.11 查看该行修改前内容

在编辑窗口,修改后的内容如果还没保存,在最左边的行标处为高亮的红色,鼠标移动到该处,可查看该行修改前的内容;

2. Cubeprogrammer

2.1 安装

  1. 到STM32CubeProg官网选择对应电脑和版本下载软件;一路下一步完成安装;

2.2 使用

2.2.1 查看芯片内部Memory

STM32 芯片连上ST-link,programmer 软件中“共享”选择Enable,刷新找到已连接的STM32,Address 填入想要查看的STM32 Flash 的起始地址,Size 填要查看的长度;
在这里插入图片描述

3. CubeTouchGFX

TouchGFX 是一款由意法半导体(ST)提供的、免费的高级图形用户界面(GUI)框架,专门为 STM32 微控制器进行了深度优化;目前全系STM32芯片都支持TouchGFX;

如果STM32芯片内部Flash 不足以存储位图和代码,则需要进行外部Flash 的扩展,来存储大量的位图等资源;

  • GUI 的拓扑:STM32和基于位图的人机界面
    • LCD接口:LTDC/MIPI-DSI/FSMC/SPI,用于驱动LCD 显示屏;
    • 图形加速单元:Chrom-ART/JPEG,用于降低CPU 的运行负载,提高图形处理能力;
    • 存储接口Chrom-GRC/FMC/OSPI/SDMMC,用于优化存储单元;

不同LCD 接口:
在这里插入图片描述

3.1 安装

TouchGFX 可在CubeMX 中作为插件使用,也可以独立到官网下载TouchGFX Designer 独立软件使用;


  • TouchGFX 在CubeMX 中作为插件使用:在CubeMX 工程中的“Middleware and Software Packs”中,找到“X-CUBE-TOUCHGFX” 进行安装;
    在这里插入图片描述
    另外也可以在CubeMX 的首页处进行安装:
    在这里插入图片描述
    在这里插入图片描述

  • **找到TouchGFX Designer 安装包 **:在电脑搜索关键字"TouchGFX",找到对应版本TouchGFX Designer 的后缀为.msi的安装包,安装;

3.2 使用

3.2.1 PC 端仿真

在这里插入图片描述
或右下角的:
在这里插入图片描述

3.2.2 部件

如下图,Editor 中的部件分为按钮、图像、容器、形状、进度条、杂项、自定义容器;
在这里插入图片描述

3.2.3 交互

每个部件都可以设置交互;
在这里插入图片描述

  • 连锁交互:即该交互动作会触发另一个交互动作,使用时如下图勾选,然后在下面填上被连锁的交互;
    在这里插入图片描述

3.2.4 图像面板

在该页面可导入图片、如何存储、如何优化,以便在有限的 MCU 资源下达到最佳性能;
在这里插入图片描述

  • 存储位置 (Sections):配置该图片存储在内部还是外部Flash;
  • 格式与压缩(Image 与Compression):根据需求配置图片格式与压缩,以决定图片的质量和空间占用情况;

3.2.5 文本管理面板

配置文本样式、配置不同国家的语言等
在这里插入图片描述

3.2.6 配置面板

在这里插入图片描述

  • 文本配置:下图选择GUI 内容的存放位置;
    在这里插入图片描述

3.2.7 工程中图片存放的位置

在STM32CubeMX 生成的工程中,TouchGFX 的图片一般存放在代码工程的TouchGFX - assets - images 文件夹中;

http://www.jsqmd.com/news/785954/

相关文章:

  • 恩氏粘度测定仪规范操作教程(依据GB/T 266,超详细实操指南)
  • Logica:基于OpenClaw的Arena原生AI交易代理框架深度解析
  • 基于扩散模型与LES的风机入口湍流场高效重构技术
  • 竞品分析(结合完美日记 × 花西子报告)
  • 南宁上门家教试听不满意不收费?南宁家教总动员教南宁家长请家教避坑实录 - 教育快讯速递
  • 泰山派3M-RK3576-系统功能-Buildroot-网口上网
  • 家用离网光伏电站远程运维管理平台方案
  • 为什么 OpenClaw 更像“AI 操作系统”?
  • CANN/hccl Scatter算子接口文档
  • 20254108 2025-2026-2 《Python程序设计》实验3报告
  • 零基础参加高考美术培训,真能如愿逆袭名校吗?
  • Llama 3.2-90B多模态图像理解实战:Groq+Streamlit轻量级部署方案
  • 机器学习赋能系外行星预测:从提丢斯-波得定则到数据驱动模型
  • 2026年沈阳GEO优化服务商推荐top5:专业选型参考与核心实力分析 - 产业观察网
  • 基于LLM的政府信息智能分析系统:从文档解析到洞察生成全流程实践
  • 复合调味料行业标杆推荐:2025年专业生产厂家与定制代加工优选指南 - 品牌策略师
  • 广州十一区工厂搬迁评测:兵哥搬家专业度实测解析 - 奔跑123
  • 维策信息GEO优化口碑如何?创始人11年运营零投诉
  • 机器学习预测系外行星:从TB定律到数据驱动的天文发现
  • 2026年温州GEO优化服务商推荐top5:能力梳理、产业适配与选型参考 - 产业观察网
  • CANN/ops-transformer Chunk_gated_delta_rule算子测试框架
  • AI写专著必备:实测4款工具,快速产出20万字专著,查重不用愁!
  • 厦门装修哪个比较好
  • CANN基础设施OAT使用指南
  • CLAWHunter:基于WiFi Pineapple Pager的OpenClaw AI网关自动化侦察与渗透工具
  • 强化学习算法 —— 带自适应步长的策略梯度算法(PG算法、Adaptive step size for Adam optimizer)
  • cann/sip AsumOperation示例
  • 基于RAG与向量数据库构建个人AI知识库:从KnowMe项目看技术实现
  • CANN/ops-solver Sgetri算子测试
  • 2026年无锡GEO优化行业市场调研及3家优质服务商选型参考指南 - 产业观察网