From e5e5bef955559109d72612309ffee94aa6c3def9 Mon Sep 17 00:00:00 2001 From: danny <12793148@qq.com> Date: Mon, 2 Sep 2024 15:08:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=AC=AC=E4=BA=8C=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- book/02:STM32的硬件电路/01.md | 48 ++++++++++++------ .../img/编译过程.drawio.png | Bin 25616 -> 32311 bytes 2 files changed, 32 insertions(+), 16 deletions(-) diff --git a/book/02:STM32的硬件电路/01.md b/book/02:STM32的硬件电路/01.md index 679f24d..40d59e4 100644 --- a/book/02:STM32的硬件电路/01.md +++ b/book/02:STM32的硬件电路/01.md @@ -136,6 +136,22 @@ VBUS是TYPE-C的5V,VSWD是调试接口SWD的5V,通过防倒灌电路使得 # 3. 开发环境 +## 3.1. 开发软件 + +### 3.1.1. 开软件开发工具(p45) + +1. STM32CubeMX:图形化的芯片配置工具,可以完成目标选择、引脚分配、外设配置和始终配置等工作,并自动生成初始化代码和应用程序的工程框架; +2. STM32CubeIDE:基于eclipse 的 c/c++ 工具链的集成开发环境,提供代码编辑、编译、下载和调试等多种功能,同时将STM32CubeMX以插件的方式继承到IDE中。 + +### 3.1.2. 嵌入式软件 + +1. STM32CubeMCU Packages (MCU固件包) + 1. STM32Cube HAL APIs + 2. STM32Cube LL APIs + 3. 中间件 + +## 3.2. 开发环境安装 + [视频:安装stm32CubeIDE](https://www.bilibili.com/video/BV1HM411b78E/?spm_id_from=333.788&vd_source=3c8e333d6657680a469ddf0238f01d6a) 书上介绍的开发环境是Keil开发环境,这个在51中也使用过,但是该软件是属于商业软件,需要购买。因此我们使用意法半导体提供的免费开发环境stm32cubeide,其开发过程与书上讲的几乎完全一致,且集成度更好,更便于使用。 @@ -163,7 +179,7 @@ STM32CubeIDE集成了:STM32CubeMX:芯片选型、配置、代码生产等, 5. 工程配置 6. 程序编写 -## 3.1. 升级STLink固件 +## 3.3. 升级STLink固件 STLink 调试器版本需更新,否则可能无法下载程序和进行调试。 @@ -176,9 +192,9 @@ STLink 调试器版本需更新,否则可能无法下载程序和进行调试 -## 3.2. 示例:LED闪烁 +## 3.4. 示例:LED闪烁 -### 3.2.1. 新建项目 +### 3.4.1. 新建项目 File->New->STM32 Project 出现以下界面: @@ -194,7 +210,7 @@ File->New->STM32 Project 出现以下界面: 选择开发固件(其实就是函数编程的接口版本,类似C开发中使用的三方库),一般不用更改,直接点击2位置的Finish完成。如果遇到下图对话框,选择Yes。 -### 3.2.2. 硬件配置 +### 3.4.2. 硬件配置 ![image-20240831155740992](./img/image-20240831155740992.png) @@ -214,7 +230,7 @@ File->New->STM32 Project 出现以下界面: PA6变绿,并且有个图钉,表示这个端口已经被配置和占用。使用ctl+s 保存更改,IDE会询问是否生成代码框架,当然选择Yes。 -### 3.2.3. 加入代码 +### 3.4.3. 加入代码 打开 main.c 大约在101 行左右,输入以下代码。注意,注释代码是IDE自动生成的,不要删除! @@ -244,7 +260,7 @@ PA6变绿,并且有个图钉,表示这个端口已经被配置和占用。 注意接口应该是SWD,一般不用修改,直接OK后观察开发板的效果。 -### 3.2.4. 调试 +### 3.4.4. 调试 如下图,选择编译模式为Debug @@ -283,20 +299,20 @@ PA6变绿,并且有个图钉,表示这个端口已经被配置和占用。 Stm32CubeIDE 其实是由多个工具所构成: -- Stm32Cube:该工具是一个独立的工具,可以嵌入到 Stm32CubeIDE 中进行工作。就是在本章 3.2.1 中新建项目用到的这个工具。这个工具包含了芯片选择、芯片配置、芯片相关开发资源下在与更新、代码框架生成和更新等功能。可以这么说,这是STM32开发工具的核心,IDE只是更容易编程和调试而已。 -- hEclipse CDT IDE:这是基于Eclipse的C/C++开发环境,用于便捷的代码开发和调试。 +- Stm32CubeMX:该工具是一个独立的工具,可以嵌入到 Stm32CubeIDE 中进行工作。就是在本章 3.2.1 中新建项目用到的这个工具。这个工具包含了芯片选择、芯片配置、芯片相关开发资源下在与更新、代码框架生成和更新等功能。可以这么说,这是STM32开发工具的核心,IDE只是更容易编程和调试而已。 +- Eclipse CDT IDE:这是基于Eclipse的C/C++开发环境,用于便捷的代码开发和调试。 - GCC for ARM:C/C++交叉编译环境,用于生成目标代码。 - ST-Link 工具:下载和调试工具,用于把目标代码下载到开发板,或者与Eclipse协同对代码进行调试。 -## 4.1. Stm32Cube +## 4.1. Stm32CubeMX 该工具是整个STM32开发的核心,在IDE中,有个后缀为ioc的文件: ![image-20240901084133705](./img/image-20240901084133705.png) -这就是Stm32Cube所维护的文件,该文件中有当前MCU的所有配置信息、项目所依赖的软件功能配置、代码生成控制等信息。通过该工具,最终目的是生成一个代码框架,我们只需要在代码框架下加入我们的业务逻辑就好了。这样就避免了繁琐的芯片初始化、配置等过程,这些工具都给你做好了。 +这就是Stm32CubeMX所维护的文件,该文件中有当前MCU的所有配置信息、项目所依赖的软件功能配置、代码生成控制等信息。通过该工具,最终目的是生成一个代码框架,我们只需要在代码框架下加入我们的业务逻辑就好了。这样就避免了繁琐的芯片初始化、配置等过程,这些工具都给你做好了。 -在IDE中,双击后缀为ioc的文件就会打开 Stm32Cube 的界面,如果进行了修改,保存的时候会询问是否重新生成代码框架。 +在IDE中,双击后缀为ioc的文件就会打开 Stm32CubeMX 的界面,如果进行了修改,保存的时候会询问是否重新生成代码框架。 这个工具还有一个功能是维护 MCU Packages 就是不同系列MCU的底层框架代码和一些附加功能代码(网络、USB、操作系统等)。通过 Help 菜单中的 Manage Embedded Software Packages 功能可以打开。可以看到,支持的MCU系列的相关软件包。 @@ -306,9 +322,9 @@ Stm32CubeIDE 其实是由多个工具所构成: ![Alt text](img/%E7%BC%96%E8%AF%91%E8%BF%87%E7%A8%8B.drawio.png) -上面就是整个的开发的流程,STM32Cube在配置方面减少了开发者大量复杂且容易出错的芯片配置和初始化工作,使得开发者可以专注自己的业务逻辑实现。 +上面就是整个的开发的流程,STM32CubeMX在配置方面减少了开发者大量复杂且容易出错的芯片配置和初始化工作,使得开发者可以专注自己的业务逻辑实现。 -接下来我们来看看STM32Cube帮助我们做了些什么,我们的代码结构如下: +接下来我们来看看STM32CubeMX帮助我们做了些什么,我们的代码结构如下: ![image-20240901091010047](./img/image-20240901091010047.png) @@ -317,7 +333,7 @@ Stm32CubeIDE 其实是由多个工具所构成: - Core 用户的核心代码在这里; - Drivers 硬件抽象层的代码在这里,包括各种外围硬件驱动,操作系统配置等; - Debug/Release 和传统C/C++一样,编译的中间代码; -- Blink.ioc 工程文件,被 Stm32Cube 所维护; +- Blink.ioc 工程文件,被 Stm32CubeMX 所维护; - 其他文件。。。 其实,大部分时间,开发者只需要维护 Core 中的部分代码即可。 @@ -378,9 +394,9 @@ HAL_Delay(1000); 表示使用延时1000毫秒; HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); 两个参数,第一个代表端口,就是上面的常量定义的LED端口;第二个代表具体的引脚,就是LED的端口。 -> 其实框架还生成了很多工作,包括MCU的时钟初始化、总线初始化、内存初始化等工作。这些工作都使用 Stm32Cube 的配置进行,代码是自动生成的,一般不用关心。在后续的工作当中,我们还会用到很多Stm32Cube的配置功能。 +> 其实框架还生成了很多工作,包括MCU的时钟初始化、总线初始化、内存初始化等工作。这些工作都使用 Stm32CubeMX 的配置进行,代码是自动生成的,一般不用关心。在后续的工作当中,我们还会用到很多Stm32CubeMX的配置功能。 -## 4.4. Stm32Cube 基本功能 +## 4.4. Stm32CubeMX 基本功能 ![image-20240901123125992](./img/image-20240901123125992.png) diff --git a/book/02:STM32的硬件电路/img/编译过程.drawio.png b/book/02:STM32的硬件电路/img/编译过程.drawio.png index 2483028a6dc4ed5403720906856ebdae366ff623..dd3d9340172e1fe446a64a077a17c3c481ecac18 100644 GIT binary patch literal 32311 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 delta 20085 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 C_I45g