STM32CubeIDE/Programmer/Touch GFX 应用

文章目录

  • [1. CubeIDE](#1. CubeIDE)
    • [1.1 安装](#1.1 安装)
      • [1.1.1 【异常】安装STM32CubeMX 平台时遇到缺乏Java 环境问题](#1.1.1 【异常】安装STM32CubeMX 平台时遇到缺乏Java 环境问题)
    • [1.2 使用](#1.2 使用)
      • [1.2.2 编译](#1.2.2 编译)
      • [1.2.3 生成hex、bin 烧录文件](#1.2.3 生成hex、bin 烧录文件)
      • [1.2.4 仿真调试](#1.2.4 仿真调试)
      • 1.2.5快捷键
      • [1.2.6 编码格式改为GBK 与支持浮点数打印](#1.2.6 编码格式改为GBK 与支持浮点数打印)
      • [1.2.7 全局搜索](#1.2.7 全局搜索)
      • [1.2.8 查看代码占用Flash 情况](#1.2.8 查看代码占用Flash 情况)
      • [1.2.9 包含头文件](#1.2.9 包含头文件)
      • [1.2.10 运行后重启单片机](#1.2.10 运行后重启单片机)
  • [2. Cubeprogrammer](#2. Cubeprogrammer)
    • [2.1 安装](#2.1 安装)
    • [2.2 使用](#2.2 使用)
      • [2.2.1 查看芯片内部Memory](#2.2.1 查看芯片内部Memory)
  • [3. CubeTouchGFX](#3. CubeTouchGFX)
    • [3.1 安装](#3.1 安装)
    • [3.2 使用](#3.2 使用)
      • [3.2.1 PC 端仿真](#3.2.1 PC 端仿真)
      • [3.2.2 部件](#3.2.2 部件)
      • [3.2.3 交互](#3.2.3 交互)
      • [3.2.4 图像面板](#3.2.4 图像面板)
      • [3.2.5 文本管理面板](#3.2.5 文本管理面板)
      • [3.2.6 配置面板](#3.2.6 配置面板)
      • [3.2.7 工程中图片存放的位置](#3.2.7 工程中图片存放的位置)

本文中使用的 STM32CubeIDE 版本为2.0.0

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 编码格式改为GBK 与支持浮点数打印

使得串口打印支持中文与浮点数;

  1. 右击工程 - properties:
  2. 如下图,更改为GBK:
  3. 在如下图中,勾选打印浮点数功能:

  • 如果上述操作不能完成:在右击工程 - properties 中如下图位置,添加-fexec-charset=GBK

1.2.7 全局搜索

点击如下图图标,快捷键Crtl + H:

在File Search 中填入搜索目标;

1.2.8 查看代码占用Flash 情况

先编译一次现有工程,在右下角的Build Analyzer 处点击刷新,即可查看;


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

bash 复制代码
   text	   data	    bss	    dec	    hex	filename
  53092	    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,如下图位置选择;

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 文件夹中;

相关推荐
constant_LDX2 小时前
步进电机开发(一、硬件设计)
单片机·嵌入式硬件
北山有鸟2 小时前
修改源码法和插件法
嵌入式硬件·学习
richxu202510012 小时前
嵌入式学习之路->stm32篇->(14)通用定时器(上)
stm32·单片机·嵌入式硬件·学习
Deitymoon3 小时前
STM32——串口通信(USART)
单片机·嵌入式硬件
iCxhust3 小时前
微机原理实践教程(C语言篇)---A002流水灯
c语言·开发语言·单片机·嵌入式硬件·51单片机·课程设计·微机原理
Deitymoon5 小时前
STM32——外部中断按键控制led
stm32·单片机·嵌入式硬件
czwxkn5 小时前
7STM32(stdl)flash内部闪存
stm32·单片机·嵌入式硬件
咕噜咕噜啦啦5 小时前
STlink下载程序
stm32·单片机
Deitymoon6 小时前
STM32——串口中断接收
stm32·单片机·嵌入式硬件