开发环境:
IDE:MKD 5.38a
STM32CubeMX: V6.12.0
开发板:STM32H7S78-DK开发板
MCU:STM32H7S7L8H6H
STM32的开发工具有很多,笔者习惯使用MDK开发,因此本文将基于MDK+STM32CubeMX搭建开发环境。
1 STM32H7S78-DK简介
STM32H7S78-DK探索套件是一个完整的演示和开发平,基于Arm® Cortex®‑M7内核的STM32H7S7L8H6H微控制器。STM32H7S78-DK探索套件包含丰富的硬件功能,可帮助用户评估许多外设,如USB Type-C® 、Octo‑SPI Flash存储器和Hexadeca‑SPI PSRAM设备、音频编解码器、数字麦克风、ADC、灵活的扩展连接器和用户按钮。凭借四个灵活的扩展连接器,可轻松实现无限制的扩展,适用于无线连接、模拟应用和传感器等特定应用。
Figure 1-1 STM32H7S78-DK探索套件
STM32H7S78-DK探索套件集成了面向STM32 MCU的STLINK-V3EC嵌入式在线调试器和编程器,配有USB虚拟通信端口桥以及全套MCU软件包。
STM32H7RS系列配备Cortex-M7内核,通过600 MHz bootflash MCU提供卓越的性能,非常适合高速实时应用。其外部存储器接口支持在线执行 (XiP) 应用,同时2.5D GPU可以最小的CPU负载支持最高WSVGA的分辨率。这款MCU提供ST-iRoT、存储器保护、加密和认证等各种高级安全功能,是一款安全极具性价比的选择,非常适合打造面向未来的应用。
STM32H7S7L8H6H微控制器具有三个I2C总线、六个SPI端口、三个USART端口、两个SDMMC端口、两个CAN端口、一个以太网端口、两个SAI端口、两个12位ADC、一个嵌入式降压转换器、两个Octo-SPI存储器接口、一个Hexadeca-SPI接口、支持功率传输的USB OTG HS端口、LCD-TFT控制器、灵活存储控制器 (FMC)、8至14位DCMI接口,支持JTAG和SWD调试。
Figure 1-2 STM32H7S7L8H6H简介
从上图可以看出,STM32H7S7L8H6H的性能和资源都是非常丰富,可玩性很强。
2 MDK环境准备
目前市面通用的MDK for ARM版本有Keil 4和Keil 5:使用Keil 5建议安装5.38以上版本。笔者的MDK是5.38a。
从MDK的官网可以下载得到MDK的安装包,然后安装即可,关于的MDK安装请看笔者的教程。
MDK安装教程:https://blog.csdn.net/bruceoxl/article/details/108548573
MDK下载地址:https://www.keil.com/download/product/
Figure 2-1 MDK ARM下载
安装完成后会自动打开,我们将其关闭。
接下来我们下载STM32H7S的软件支持包。
下载地址:https://www.keil.arm.com/packs/
Figure 2-2 STN32H7S Pack包下载
下载好后双击Keil.STM32H7RSxx_DFP.1.0.0.pack运行即可:
Figure 2-3 STN32H7S Pack包安装
点击[Next]即可安装完成。
Figure 2-4 STN32H7S Pack包安装完成
安装成功后,重新打开Keil,则可以在File->Device Database中出现STM32H7S7L8HxH的下拉选项,点击可以查看到相应的型号。
Figure 2-5 STM32H7S7L8HxH型号
3 STM32CubeMX安装
首先去ST官网下载STM32CubeMX。
下载地址:https://www.st.com.cn/zh/development-tools/stm32cubemx.html
更具自己的系统下载对应的版本,笔者使用的Windows 10系统,不管任何系统,除了初始化安装方式不一样,安装过程都是一样的。这里就不再赘述了。安装好后,还需要安装HAL库。
4 HAL库安装
HAL库可以在线安装也可以离线安装。
4.1 HAL库在线安装
打开安装好的 STM32CubeMX 软件, 进入库管理界面(Help -> Manage embedded...)。
会有一个软件列表, 勾选上你要安装的HAL库, 点击“Install Now” 直到安装成功。 如下图:
这种方式比较简单,需要联网在线下载,可能需要等待一段时间。如果刷新之后,可以看到最新版本,以及一些老版本HAL库。等待安装完成即可。
4.2 HAL库离线安装
当然还可以离线安装。
离线安装的前提是需要下载好离线包,方法有两种:1.从库管理界面直接导入离线包。2.直接解压离线包到指定路径下。
1.导入离线包
2.直接解压
先在Help -> Updater Settings设置HAL库路径
直接解压HAL库离线包,放在前面设置的库路径下。
5 新建工程
接下来从选择自己型号MCU,到生成代码并成功运行的创建过程。
1.打开STM32CubeMX,进入MCU选择器
进入选择器时会联网更新数据库,可能需要等待一下。
2.选择对应型号MCU
【注】第一次使用某单片机,在点击生成代码以后,如果没有相应的固件,STM32CubeMX软件会提示需要下载固件,点击确定即可在线下载。保持联网,在线安装很快,当然也可先安装HAL库,参见上一节内容。
3.时钟源选择
如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC(如下图)。如果使用默认内部时钟(HSI),这一步可以略过。
4.选择GPIO(LED)引脚
然后将对应的GPIO配置为输出模式。对于以上四个LED控制引脚,需要将Pin Context Assignment修改为Boot,User Label修改为和板子丝印对应的: LED1、LED2、LED3、LED4,如下图:
Pin Context Assignment修改为Boot。
5.配置时钟Clock
STM32CubeMX配置时钟的界面非常方便,有很多提示(比如最大时钟),很多地方直接点击选择就行了。默认高速时钟是使用内部(HSI),而且CPU时钟配置的比较低。外部晶振24M,将CPU Clocks修改为600。
6.工程管理
工程管理器的内容比较多,大部分都默认即可。
值得注意的是,如果想使用GCC或者其他编译工具,直接在‘Toolchain/IDE’选择即可,然后就可进行应用开发,不需要考虑工程搭建,非常方便。
7.生成代码
以上操作就基本配置完成了一个简单的示例工程,只需要点击“生成代码”即可。
8.添加代码
当然,以上生成的代码还不够完善,需要添加自己的应用代码。添加在主函数添加一下应用代码:
编译。这里使用Boot过程。
下载。
LED会不断闪烁。