引言 本应用笔记描述如何在意法半导体的 STM32CubeIDE 集成开发环境中开始基于 STM32L5 Series 微控制器的项目。6 I7 D& e* n' E& C % C& k9 q! f1 ?6 u" Y 1 概述 STM32CubeIDE 支持基于 Arm® Cortex®处理器的 STM32 32 位产品。; h0 j& R0 K+ ^" p2 Z 提示 Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere. 1.1 先决条件7 N- k: L+ u% K, G% x 以下工具是理解本文档中的教程并开发基于 STM32L5 Series(Arm® TrustZone®已启用)的应用程序的先决条件:( P/ _8 n$ G. w& b • STM32CubeIDE 1.2.04 f5 [1 h6 o9 Z2 A7 P • STM32CubeProgrammer (STM32CubeProg) 2.3.0: 选项字节配置 • STM32Cube_FW_L5_V1.0.0:STM32CubeL5 固件与示例项目 1.2 本文档中的用例& q- D. O1 E$ L6 q 在 STM32CubeIDE 上下文中,用户有许多不同的方法来探索和着手开发基于 STM32L5 Series 的项目:# a: N `' y2 v# A4 l% k • 从 STM32CubeL5 MCU 开发包导入一个 STM32CubeIDE 项目,以通过工作示例来学习- z4 d" I) L# [ • 使用 STM32CubeMX 工具创建 STM32CubeMX 项目% M) I5 s1 x* m) U- c+ [5 J9 T • 在 STM32CubeIDE 中创建一个空项目,编写自己的代码7 e+ a: W( ^+ F" y0 y* Y • 在 STM32CubeIDE 中创建一个空项目,从 STM32CubeL5 MCU 开发包中复制示例项目代码到创建的项目中建议采用以下方法熟悉和开始基于 STM32L5 Series 的项目开发: 1. 导入一个 TrustZone®示例项目,该项目是 STM32CubeL5 MCU 开发包的组成部分。这是了解 STM32L5MCU 启动部分代码 CMSIS 和 HAL 驱动程序的最快方法。 2. 创建一个空项目,并从 STM32CubeL5 MCU 开发包复制代码。在空项目中,用户完全控制源代码和配置文件,STM32CubeMX 则无法触及。这为用户提供了更高的灵活性,但需要稍微陡一些的学习曲线。 3. 创建一个 STM32CubeMX 项目,使用图形界面配置硬件并生成相应的 HAL 驱动程序。这可以作为量产项目或学习项目,以便进行深入探索和学习。 一些模板项目以 STM32CubeIDE 项目的格式提供;这些项目是已启用或未启用 TrustZone®的模板项目。例如:; r6 X+ a* W$ Z/ _ • 使用 TZEN = 1:7 S2 a6 N5 f6 h STM32Cube_FW_L5_V1.0.0\STM32Cube_FW_L5_V1.0.0\Projects\STM32L552E-EV\Templates\TrustZoneEnabled\ • 使用 TZEN = 0: STM32Cube_FW_L5_V1.0.0\STM32Cube_FW_L5_V1.0.0\Projects\STM32L552E-EV\Templates\TrustZoneDisabled\! r- r: p$ Z( m( t! H& B2 X { 该应用笔记上面提到的参考项目 TrustZone 已启用,TrustZone 是通过置位选项字节的 TZEN 位来使能的。0 A: ?1 V- R) l2 b- v( r 该项目模板的 readme 文件描述如何配置选项字节以匹配代码;它提供了一个很好的模板,可用于学习一些重要的配置用例。' b: i. T( e1 v) x$ V 在首次学习体验之后,用户可以选择创建一个空项目,或者使用 STM32CubeMX 给自己的应用创建一个新项目,也可以两者都尝试一下。 固件 STM32Cube_FW_L5 包含许多面向不同外设的其他示例项目,带有 STM32CubeIDE 项目文件。可以将这些项目导入 STM32CubeIDE 并进行研究,以了解如何使用 STM32L5 外设。( x5 `8 d# B& f: |- z" t& t7 s . a* i$ o" t( u. f- K' g8 j8 f 1.3 选项字节 若要详细了解选项字节有关信息,请参见 STM32L5 Series(RM0438)中的微控制器参考手册。对于作为此应用笔记基础的特定示例项目模板,示例项目的 readme.txt 文件中列出了正确的选项字节值。用户必须使用! C- w9 r/ l6 @- K5 p' x) }' V STM32CubeProgrammer (STM32CubeProg)更改选项字节9 q; k1 J' g% U; w - u& W3 h; |0 o. B* L+ t, l/ Z9 t 1.4 特殊的分层项目结构面向安全多核 MCU* I5 k4 m F' v/ Q4 K8 v' g 在导入或创建项目之前,考虑一些项目结构概念很重要。创建 STM32L5 项目之后,项目结构自动分层。单核项目的项目结构是扁平的。在多核项目或采用启用了 TrustZone®的 MCU 的项目(如 STM32L5 Series 中所示)中,使用分层项目结构。当用户创建或导入一个项目时,它由一个根项目和被称为 MCU 项目的子项目组成。MCU 项目是真实 CDT 项目;它们可以包含构建和调试配置,而根项目不能。根项目是一个简单的容器,允许在安全和非安全MCU 项目之间共享公共代码(在 STM32L5 Series 的情况下),如图 1 中所示。 + l* M H# Y9 G ) w9 d* e, Q, P& | 如果设置已更改,或者项目不在分层结构中,则可以进行更改,如图 2 中所示。/ T- X& p- g7 _, p 在文件系统中,两个 MCU 项目位于根项目中,根项目只包含一个.project 文件。: \0 D6 R/ _+ s! E ! ~: i! p6 N5 I, {6 q$ d, w 完整版请查看:附件. d' } K3 T4 Z6 ~9 Y 3 o5 O4 O. o0 F9 V1 A o |
STM32CubeIDE 快速入门指南
【STM32C0评测】5、娱乐一下,分享2048游戏
【STM32C0评测】4、SPI亮屏及GUILite移植
【STM32C0评测】3、I2C使用
【STM32C0评测】1、开箱、环境搭建、按键点灯
【STM32C0评测】2、PWM实现呼吸灯
[STM32MP125-DK] 裸机开发
STM32CubeMX STM32F4 HAL库 工程建立
【NUCLEO-U545RE-Q评测】5. 基本计时器
【STM32U545试用】SHT30+OLED湿湿度