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

【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程

[复制链接]
EPTmachine 发布时间:2026-7-4 11:47

手里有一块正点原子H7R7开发板

core_board.jpg

根据核心板上芯片的丝印如下

芯片 型号
CPU STM32H7R7L8H6H
Hyper RAM 32MB W958D8NBYA5162
NOR Flash 32MB MX25UM256
SD NAND 16Gb MKDV16GIL

基于该开发板介绍STM32H7R7系列芯片的开发过程。

1 CubeMX中创建工程

在CubeMX中选择STM32H7R7L8H6H芯片型号并创建工程。

Select_MCU_ID.png

创建时会提示Memory Protection Unit for Cortex-M7的配置提示,选择Yes即可。

STM32H7系列芯片适配时,使用STM32提供的开发工具,需要构建三个工程

  • Boot:运行在内部Flash中的代码
  • Application:运行在外部Flash中的代码
  • ExtMemLoader:专用于外部加载程序的代码

STM32H7_projects.png

CubeMX作为管理STM32芯片工程配置的工具,可以以不同的方式查看CubeMX中的工程配置。

CubeMX_list_config_items.png

1.1 时钟系统

CubeMX中的RCC选项栏中,系统晶振选择外部晶振,Parameter Settings中的参数设置如下。

RCC_Select_HSE_Crystal_Resonator.png

【正点原子】H7RX开发板资料盘(A盘)\3,原理图\ATK-CNH7RX V1.0.pdf中显示连接的外部晶振为24MHz

HSE_24M.png

Clock Configuration中,设置时钟信号参数

Set_Clock_Configurations.png

使能Boot和Appli工程中的ICache和DCache功能。

Enable_ICache_DCache.png

1.2 Flash设置

STM32H7R7核心板XSPI1外接了一颗8线NOR Flash,需要根据NOR Flash的参数进行XPSI1外设配置。由于Boot和ExtMemLoader都会用到XSPI1外设,所以Boot和ExternalMemLoader都要勾选该外设。

XSPI1_Projects_Select.png 外设参数设置如下,根据外部Flash的通讯协议类型和容量大小调整参数。这里接的是Macronix的Flash,支持DDR模式,选择Macronix mode。采用的Flash芯片型号为MX25UM25645G,大小是256Mbits。

XSPI1_Config_paras.png

XSPI1的引脚设置采用CubeMX的默认配置即可。

1.3 HyperRAM设置

STM32H7R7核心板XSPI1外接了一颗HyperRAM,需要根据HyperRAM的参数进行XPSI2外设配置。ExtMemLoader不涉及RAM的配置,RAM仅在Boot中配置即可。

XSPI2_Projects_Select.png

设置XSPI2接口的通讯参数

XSPI2_Config_paras.png

XSPI2的引脚设置采用CubeMX的默认配置即可。

调整Clock Configuration中设置PLL2的分频和倍频系数,设置XSP1和XSP12外设的总线频率。

Adjust_PLL2_para_XSPI1_XSPI2_Clock.png

1.4 ExtMem Manager和ExtMem Loader配置

勾选ExtMem Manager使用的工程并生成相应的Boot代码

EXTMEM_MANAGER_Set1.png

设置ExtMem Manager内存的驱动方式以及数据线数量

EXTMEM_MANAGER_Set2.png

ExtMem Loader组件参数设置,根据外部存储器件的大小设置相应的参数。

ExtMem_Loader_paras.png

1.6 SBS设置

在SBS配置中,设置Boot和ExtMemLoader工程的SBS模块,用于支持XSPI接口的低电压操作选项,提高IO口的翻转速度,提高数据访问速率。

SBS_mode_configuration.png

1.7 Flash设置

勾选Boot和Appli工程中的Flash设置,并添加相应的用户配置,用于外部存储的驱动设置。

Flash_component_settings.png

1.8 CubeMX添加自定义工程文件

CubeMX支持添加自定义的工程文件用于实现定制化的开发。

https://support.touchgfx.com/zh-CN/docs/development/scenarios/adding-files-to-stm32cubemx-projet

这里需要添加HyperRAM相关的自定义驱动代码。在.ioc文件所在的目录创建.extSettings文件,内容如下。

[Boot:ProjectFiles]
HeaderPath=../Drivers/BSP
[Boot:Groups]
Drivers/BSP=../Drivers/BSP/HyperRAM/hyperram.c
[Boot:Others]

并在其中创建文件夹存放HyperRAM相关的文件

HyperRAM_Driver_Code.png

添加文件后的文件目录如下

CubeMX_add_extSettings.png

CubeMX生成的工程有时会存在添加文件失败的情况,此时,保留CubeMX目录下的.ioc、.mxproject、.extSettings文件,其余文件删除并重新生成即可。.ioc文件和.mxproject保存工程的配置信息,.extSettings文件保存用户自定义的信息。

1.9 添加HypeRAM和Flash相关的自定义代码

完成以上配置后,使用CubeMX生成STM32CubeIDE的代码

CubeMX_gen_code.png

在其中的Boot工程的main.c中添加HyperRAM的头文件,并在MX_XSPI2_Init添加HyperRAM调用。

/* USER CODE BEGIN Includes */
#include "HyperRAM/hyperram.h"
/* USER CODE END Includes */

  /* USER CODE BEGIN XSPI2_Init 2 */
  HyperRAM_EnableMemroyMapMode();
  /* USER CODE END XSPI2_Init 2 */

在Boot工程的stm32h7rsxx_hal_msp.c中添加XSPI1和XSPI2的HSLV使能,支持1.8V 200MHz速度。

void HAL_MspInit(void)
{
    /* USER CODE BEGIN MspInit 1 */
    /* high speed low voltage config */
    HAL_SBS_EnableIOSpeedOptimize(SBS_IO_XSPI2_HSLV);
    HAL_SBS_EnableIOSpeedOptimize(SBS_IO_XSPI1_HSLV);
    /* USER CODE END MspInit 1 */
}

在ExtMemLoader中启用XSPI1的HSLV功能,在stm32h7rsxx_hal_msp.c中使能XSPI1的HSLV功能。

void HAL_MspInit(void)
{
/* USER CODE BEGIN MspInit 1 */
/* high speed low voltage config */
HAL_SBS_EnableIOSpeedOptimize(SBS_IO_XSPI1_HSLV);
/* USER CODE END MspInit 1 */
}

1.10 Appli添加GPIO翻转代码

完成上述操作,正点原子H7R7开发板模板工程设置完成,开发板的PD14引脚控制板载的LED0,在CubeMX添加相应引脚的输出设置。

GPIO_LED_pin_Config.png

Appli工程的main.c中添加LED引脚的翻转代码

int main(void)
{
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    HAL_Delay(1000);
    HAL_GPIO_TogglePin(LED0_GPIO_Port, LED0_Pin);
  }
  /* USER CODE END 3 */
}

1.11 工程编译和烧录

创建的工程中,ExtMemLoader工程编译出.elf固件,将其后缀修改为.stldr。将文件存放到STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_2.2.100.202412061334\tools\bin\ExternalLoader文件夹中

project_flash_sequence.png

该文件会在Appli工程烧录时使用到,在Appli工程的调试配置中查看配置信息。

Appli_ExtMemLoaderSettings.pngalt text

编译并烧录Boot工程到开发板。

最后,编译Appli工程到开发板,板载LED0闪烁,证明程序可以运行。 STM32H7R7.zip

收藏 评论0 发布时间:2026-7-4 11:47

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版