这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
icore4t_1 [2020/01/15 09:17] zgf |
icore4t_1 [2024/04/09 18:05] (当前版本) zhaowenzhe [实验一:认识STM32——环境搭建与调试下载] |
||
---|---|---|---|
行 2: | 行 2: | ||
|技术支持电话|**0379-69926675-801** ||| | |技术支持电话|**0379-69926675-801** ||| | ||
|技术支持邮件|Gingko@vip.163.com ||| | |技术支持邮件|Gingko@vip.163.com ||| | ||
- | |技术论坛|http://www.eeschool.org ||| | ||
^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ||
- | | V0.1 |2020-01-03 | XiaomaGee | 初次建立 | | + | | V0.1 |2020-01-15 | XiaomaGee | 初次建立 | |
行 18: | 行 17: | ||
* MDK源自德国的KEIL公司,是RealView MDK的简称。在全球MDK被超过10万的嵌入式开发工程师使用。目前最新版本为:MDK5.27,该版本使用uVision5 IDE集成开发环境,是目前针对ARM处理器,尤其是Cortex M内核处理器的最佳开发工具。 | * MDK源自德国的KEIL公司,是RealView MDK的简称。在全球MDK被超过10万的嵌入式开发工程师使用。目前最新版本为:MDK5.27,该版本使用uVision5 IDE集成开发环境,是目前针对ARM处理器,尤其是Cortex M内核处理器的最佳开发工具。 | ||
* MDK5向后兼容MDK4和MDK3等,以前的项目同样可以在MDK5上进行开发,MDK5同时加强了针对Cortex-M微控制器开发的支持,并且对传统的开发模式和界面进行升级,MDK5由两个部分组成:MDK Core和Software Packs。其中, Software Packs可以独立于工具链进行新芯片支持和中间库的升级。如图1.1所示: | * MDK5向后兼容MDK4和MDK3等,以前的项目同样可以在MDK5上进行开发,MDK5同时加强了针对Cortex-M微控制器开发的支持,并且对传统的开发模式和界面进行升级,MDK5由两个部分组成:MDK Core和Software Packs。其中, Software Packs可以独立于工具链进行新芯片支持和中间库的升级。如图1.1所示: | ||
- | + | {{ :icore4t:icore4t_ide_1_1.png?direct |图 1.1MDK的组成}} | |
- | 图 1.1MDK的组成 | + | |
* 从上图可以看出,MDKCore又分成四个部分:uVision IDE with Editor(编辑器),ARM C/C++ Compiler(编译器),Pack Installer(包安装器),uVision Debugger with Trace(调试跟踪器)。uVision IDE从MDK4.7版本开始就加入了代码提示功能和语法动态检测等实用功能,相对于以往的IDE改进很大。 | * 从上图可以看出,MDKCore又分成四个部分:uVision IDE with Editor(编辑器),ARM C/C++ Compiler(编译器),Pack Installer(包安装器),uVision Debugger with Trace(调试跟踪器)。uVision IDE从MDK4.7版本开始就加入了代码提示功能和语法动态检测等实用功能,相对于以往的IDE改进很大。 | ||
* Software Packs又分为:Device(芯片支持),CMSIS(ARM Cortex微控制器软件接口标准)和Middleware(中间库)三个小部分,通过包安装器,我们可以安装最新的组件,从而支持新的器件、新的设备驱动库以及最新例程等,加速产品开发进度。MDK5安装包可以在:https://www.keil.com/download/product/下载到 | * Software Packs又分为:Device(芯片支持),CMSIS(ARM Cortex微控制器软件接口标准)和Middleware(中间库)三个小部分,通过包安装器,我们可以安装最新的组件,从而支持新的器件、新的设备驱动库以及最新例程等,加速产品开发进度。MDK5安装包可以在:https://www.keil.com/download/product/下载到 | ||
行 25: | 行 23: | ||
* **(1)**双击下载的MDK517文件进行安装,得到如下对话框,如图2.1所示。 | * **(1)**双击下载的MDK517文件进行安装,得到如下对话框,如图2.1所示。 | ||
- | + | {{ :icore4t:icore4t_ide_1_2.png?direct |图 2.1}} | |
- | 图 2.1 | + | |
* 点击Next,出现如下对话框,如图2.2所示。 | * 点击Next,出现如下对话框,如图2.2所示。 | ||
- | + | {{ :icore4t:icore4t_ide_1_3.png?direct |图 2.2}} | |
- | 图 2.2 | + | |
* 点击I agree…,然后Next,选择安装路径,这里安装到F盘,如图2.3所示。 | * 点击I agree…,然后Next,选择安装路径,这里安装到F盘,如图2.3所示。 | ||
- | 图 2.3 | + | {{ :icore4t:icore4t_ide_1_4.png?direct |图 2.3}} |
* 填写用户信息,这里可以随意填写,如图2.4所示。 | * 填写用户信息,这里可以随意填写,如图2.4所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_5.png?direct |图 2.4}} |
- | * 图 2.4 | + | |
* 点击Next,进入安装界面,如图 2.5所示。 | * 点击Next,进入安装界面,如图 2.5所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_6.png?direct |图 2.5}} |
- | * 图 2.5 | + | |
* 点击Finish,安装完成,如图 2.6所示。 | * 点击Finish,安装完成,如图 2.6所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_7.jpg?direct |图 2.6}} |
- | 图 2.6 | + | |
* **(2)**安装完成之后,需要安装所需要的Pack,MDK会自动弹出Pack Installer界面,点击窗口关闭按钮即可,如图2.7所示。 | * **(2)**安装完成之后,需要安装所需要的Pack,MDK会自动弹出Pack Installer界面,点击窗口关闭按钮即可,如图2.7所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_8.png?direct |图 2.7}} |
- | * 图 2.7 | + | |
* 点击菜单栏File,然后点击License Management选项,如图2.8所示。 | * 点击菜单栏File,然后点击License Management选项,如图2.8所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_9.png?direct |图 2.8}} |
- | * 图2.8 | + | |
* 输入产品的授权ID并添加许可完成激活(具体激活方法与注册机下载请自行百度),如图2.9所示。 | * 输入产品的授权ID并添加许可完成激活(具体激活方法与注册机下载请自行百度),如图2.9所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_10.png?direct |图 2.9}} |
- | 图2.9 | + | |
* **(3)**要让MDK5支持STM32F407的开发,还要安装STM32F4的器件支持包:Keil.STM32F4xx_DFP2.7.0.pack和ARM CMSIS, 也可以到下面的网址去下载:http://www.keil.com/pack/,如图 2.10所示。 | * **(3)**要让MDK5支持STM32F407的开发,还要安装STM32F4的器件支持包:Keil.STM32F4xx_DFP2.7.0.pack和ARM CMSIS, 也可以到下面的网址去下载:http://www.keil.com/pack/,如图 2.10所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_11.png?direct |图 2.10}} |
- | * 图2.10 | + | |
* 点击打开Pack Installer,如图2.11所示 | * 点击打开Pack Installer,如图2.11所示 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_12.png?direct |图 2.11}} |
- | * 图 2.11 | + | |
* 点击菜单栏File,然后点击Import选项,如图2.12所示。 | * 点击菜单栏File,然后点击Import选项,如图2.12所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_13.png?direct |图 2.12}} |
- | * 图2.12 | + | |
* 选中下载的文件,并点击打开,耐心等待文件安装,如图2.13所示。 | * 选中下载的文件,并点击打开,耐心等待文件安装,如图2.13所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_14.png?direct |图 2.13}} |
- | * 图 2.13 | + | |
== 3. 程序下载与调试 == | == 3. 程序下载与调试 == | ||
行 70: | 行 56: | ||
* CMSIS-DAP支持JTAG和SWD,同时STM32也支持JTAG和SWD。所以,我们有2种方式可以用来调试,JTAG调试的时候,占用的IO线比较多,而SW调试的时候占用的IO线很少,只需要两根即可。这里我们采用SWD调试。 | * CMSIS-DAP支持JTAG和SWD,同时STM32也支持JTAG和SWD。所以,我们有2种方式可以用来调试,JTAG调试的时候,占用的IO线比较多,而SW调试的时候占用的IO线很少,只需要两根即可。这里我们采用SWD调试。 | ||
* 首先,用CMSIS-DAP进行下载与调试,大家要在硬件上,把CMSIS-DAP用USB线连接到电脑USB和板子的SWD接口上。CMSIS-DAP的驱动安装比较简单,安装驱动可以在网上直接下载。在安装了CMSIS-DAP的驱动之后,我们接上CMSIS-DAP,并把SWD口插到STM32开发板上,打开工程,点击打开Options for Target选项卡,在Debug栏选择仿真工具为CMSIS-DAP Debugger,如图3.1所示。 | * 首先,用CMSIS-DAP进行下载与调试,大家要在硬件上,把CMSIS-DAP用USB线连接到电脑USB和板子的SWD接口上。CMSIS-DAP的驱动安装比较简单,安装驱动可以在网上直接下载。在安装了CMSIS-DAP的驱动之后,我们接上CMSIS-DAP,并把SWD口插到STM32开发板上,打开工程,点击打开Options for Target选项卡,在Debug栏选择仿真工具为CMSIS-DAP Debugger,如图3.1所示。 | ||
- | + | {{ :icore4t:icore4t_ide_1_15.png?direct |图 3.1 Debug选项卡设置}} | |
- | 图3.1 Debug选项卡设置 | + | |
* 上图中我们还勾选了Run to main(),该选项选中后,只要点击仿真就会直接运行到main函数,如果没选择这个选项,则会先执行startup_stm32f40_41xxx.s文件的Reset_Handler,再跳到main函数。 | * 上图中我们还勾选了Run to main(),该选项选中后,只要点击仿真就会直接运行到main函数,如果没选择这个选项,则会先执行startup_stm32f40_41xxx.s文件的Reset_Handler,再跳到main函数。 | ||
* 然后我们点击Settings,设置CMSIS-DAP的一些参数,如图3.2所示: | * 然后我们点击Settings,设置CMSIS-DAP的一些参数,如图3.2所示: | ||
- | + | {{ :icore4t:icore4t_ide_1_16.png?direct |图3.2 CMSIS-DAP模式设置}} | |
- | 图3.2 CMSIS-DAP模式设置 | + | |
* 图3.2中,我们使用CMSIS-DAP的SW模式调试,设置SWD的调试速度为10MHz或者5MHz,这里,如果你的USB数据线比较差,那么可能会出问题,此时,你可以通过降低这里的速率来试试。单击确定,完成此部分设置,接下来我们还需要在Utilities选项卡里面设置下载时的目标编程器,如图3.3所示: | * 图3.2中,我们使用CMSIS-DAP的SW模式调试,设置SWD的调试速度为10MHz或者5MHz,这里,如果你的USB数据线比较差,那么可能会出问题,此时,你可以通过降低这里的速率来试试。单击确定,完成此部分设置,接下来我们还需要在Utilities选项卡里面设置下载时的目标编程器,如图3.3所示: | ||
- | + | {{ :icore4t:icore4t_ide_1_17.png?direct |图3.3 FLASH编辑器选择}} | |
- | * 图3.3 FLASH编辑器选择 | + | |
* 图3.3中,我们直接勾选Use Debug Driver,即和调试一样,选择CMSIS-DAP来给目标器件的FLASH编程,然后点击Settings,这里MDK5会根据我们新建工程时选择的目标器件,自动设置flash算法。我们使用的是STM32F407IGTx,FLASH容量为1M字节,所以Programming Algorithm里面默认会有1M型号的STM32F4xx FLASH算法。特别提醒:这里的1M flash算法,不仅仅针对1M容量的STM32F4,对于小于1M FLASH的型号,也是采用这个flash算法的。最后,选中Reset and Run选项,以实现在编程后自动运行,其他默认设置即可。设置完成之后,如图3.4所示。 | * 图3.3中,我们直接勾选Use Debug Driver,即和调试一样,选择CMSIS-DAP来给目标器件的FLASH编程,然后点击Settings,这里MDK5会根据我们新建工程时选择的目标器件,自动设置flash算法。我们使用的是STM32F407IGTx,FLASH容量为1M字节,所以Programming Algorithm里面默认会有1M型号的STM32F4xx FLASH算法。特别提醒:这里的1M flash算法,不仅仅针对1M容量的STM32F4,对于小于1M FLASH的型号,也是采用这个flash算法的。最后,选中Reset and Run选项,以实现在编程后自动运行,其他默认设置即可。设置完成之后,如图3.4所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_18.png?direct |图3.4 编辑设置}} |
- | * 图3.4 编辑设置 | + | |
* 在设置完之后,点击OK,然后再点击OK,回到IDE界面,编译一下工程。接下来我们就可以通过CMSIS-DAP下载代码和调试代码。配置好CMSIS-DAP之后,使用CMSIS-DAP下载代码就非常简单,大家只需要点击LOAD按钮就可以进行程序下载。下载完成之后程序就可以直接在开发板执行。如图3.5所示。 | * 在设置完之后,点击OK,然后再点击OK,回到IDE界面,编译一下工程。接下来我们就可以通过CMSIS-DAP下载代码和调试代码。配置好CMSIS-DAP之后,使用CMSIS-DAP下载代码就非常简单,大家只需要点击LOAD按钮就可以进行程序下载。下载完成之后程序就可以直接在开发板执行。如图3.5所示。 | ||
- | + | {{ :icore4t:icore4t_ide_1_19.png?direct |图3.5 下载界面 }} | |
- | 图3.5 下载界面 | + | |
=== 二、 STM32CubeMX === | === 二、 STM32CubeMX === | ||
行 93: | 行 74: | ||
* STM32CubeMX是ST意法半导体的一个图形化的工具,也是配置和初始化C代码生成器(STM32 configuration and initialization C code generation),也就是自动生成开发初期关于芯片相关的一些初始化代码。 | * STM32CubeMX是ST意法半导体的一个图形化的工具,也是配置和初始化C代码生成器(STM32 configuration and initialization C code generation),也就是自动生成开发初期关于芯片相关的一些初始化代码。 | ||
* 从下图可以看得出,它包含了STM32所有系列的芯片,包含示例和样本(Examples and demos)、中间组件(Middleware Components)、硬件抽象层(Hardwaree abstraction layer)。如图1.1所示: | * 从下图可以看得出,它包含了STM32所有系列的芯片,包含示例和样本(Examples and demos)、中间组件(Middleware Components)、硬件抽象层(Hardwaree abstraction layer)。如图1.1所示: | ||
- | + | {{ :icore4t:icore4t_ide_1_20.jpg?direct |图 1.1STM32CubeMX的功能}} | |
- | 图 1.1STM32CubeMX的功能 | + | |
* STM32CubeMX的特性如下:1.直观的选择 STM32 微控制器。2.微控制器图形化配置:自动处理引脚冲突,动态设置确定的时钟树,可以动态确定参数设置的外围和中间件模式和初始化,功耗预测。3.C代码工程生成器覆盖了STM32 微控制器初始化编译软件,如IAR、KEIL、GCC。4.可独立使用或作为 Eclipse 插件使用。 | * STM32CubeMX的特性如下:1.直观的选择 STM32 微控制器。2.微控制器图形化配置:自动处理引脚冲突,动态设置确定的时钟树,可以动态确定参数设置的外围和中间件模式和初始化,功耗预测。3.C代码工程生成器覆盖了STM32 微控制器初始化编译软件,如IAR、KEIL、GCC。4.可独立使用或作为 Eclipse 插件使用。 | ||
* STM32CubeMX集成了一个全面的软件平台,支持STM32每一个系列的MCU开发。这个平台包括 STM32Cube HAL(一个 STM32 的抽象层集成软件,确保STM32 系列最大的移植性)。再加上兼容的一套中间件(RTOS、USB、TCP/IP 和图形),所有内嵌软件组件附带了全套例程。 | * STM32CubeMX集成了一个全面的软件平台,支持STM32每一个系列的MCU开发。这个平台包括 STM32Cube HAL(一个 STM32 的抽象层集成软件,确保STM32 系列最大的移植性)。再加上兼容的一套中间件(RTOS、USB、TCP/IP 和图形),所有内嵌软件组件附带了全套例程。 | ||
行 101: | 行 81: | ||
* 由于STM32CubeMX软件是基于JAVA环境运行的,所以需要安装JRE才能使用。STM32CubeMX要求JRE最低版本是1.7.0_45,如果你电脑已安装JRE版本大于1.7.0_45,则可以不用再下载安装。JAVA JRE安装包可以在:https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html下载到,如图2.1所示。 | * 由于STM32CubeMX软件是基于JAVA环境运行的,所以需要安装JRE才能使用。STM32CubeMX要求JRE最低版本是1.7.0_45,如果你电脑已安装JRE版本大于1.7.0_45,则可以不用再下载安装。JAVA JRE安装包可以在:https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html下载到,如图2.1所示。 | ||
- | + | {{ :icore4t:icore4t_ide_1_21.png?direct |图 2.1}} | |
- | 图 2.1 | + | |
* 双击下载的JAVA JRE文件进行安装,得到如下对话框,点击安装,如图2.2所示。 | * 双击下载的JAVA JRE文件进行安装,得到如下对话框,点击安装,如图2.2所示。 | ||
- | + | {{ :icore4t:icore4t_ide_1_22.png?direct |图 2.2}} | |
- | 图 2.2 | + | |
* 进入安装界面, 等待安装完成,如图2.3所示。 | * 进入安装界面, 等待安装完成,如图2.3所示。 | ||
- | 图 2.3 | + | {{ :icore4t:icore4t_ide_1_23.png?direct |图 2.3}} |
* 安装完成,点击“关闭”,如图2.4所示。 | * 安装完成,点击“关闭”,如图2.4所示。 | ||
- | + | {{ :icore4t:icore4t_ide_1_24.png?direct |图 2.4}} | |
- | 图 2.4 | + | |
== 3. STM32CubeMX安装步骤 == | == 3. STM32CubeMX安装步骤 == | ||
* 双击下载的STM32CubeMX文件进行安装,点击”Next”进入下一步,如图3.1所示。 | * 双击下载的STM32CubeMX文件进行安装,点击”Next”进入下一步,如图3.1所示。 | ||
- | + | {{ :icore4t:icore4t_ide_1_25.png?direct |图 3.1}} | |
- | 图 3.1 | + | |
* 选择”I accept the terms of this license agreement.”,点击”Next”,如图 3.2所示。 | * 选择”I accept the terms of this license agreement.”,点击”Next”,如图 3.2所示。 | ||
- | + | {{ :icore4t:icore4t_ide_1_26.png?direct |图 3.2}} | |
- | 图 3.2 | + | |
* 选择安装路径,点击”Next”,如图 3.3所示。 | * 选择安装路径,点击”Next”,如图 3.3所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_27.png?direct |图 3.3}} |
- | * 图 3.3 | + | |
* 提示创建安装目录,点击“确定”,如图 3.4所示。 | * 提示创建安装目录,点击“确定”,如图 3.4所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_28.png?direct |图 3.4}} |
- | * 图 3.4 | + | |
* 勾选快捷方式,点击”Next”,如图3.5所示。 | * 勾选快捷方式,点击”Next”,如图3.5所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_29.png?direct |图3.5}} |
- | * 图3.5 | + | |
* 等待安装进度完成,点击“Next”,如图3.6所示。 | * 等待安装进度完成,点击“Next”,如图3.6所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_30.png?direct |图 3.6}} |
- | * 图 3.6 | + | |
* 点击”Done”,至此已经完成STM32CubeMX的安装,如图3.7所示。 | * 点击”Done”,至此已经完成STM32CubeMX的安装,如图3.7所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_31.png?direct |图3.7}} |
- | 图3.7 | + | |
== 4. 库安装步骤 == | == 4. 库安装步骤 == | ||
* STM32的相关库文件可在https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html#tools-software下载到,如图4.1所示。 | * STM32的相关库文件可在https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html#tools-software下载到,如图4.1所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_32.png?direct |图4.1}} |
- | * 图4.1 | + | |
* 下载好需要安装的离线包,点击下图按钮(Help -> Manage embedded software packages)或按快捷键”Alt+U”进入库文件管理界面,如图4.2所示。 | * 下载好需要安装的离线包,点击下图按钮(Help -> Manage embedded software packages)或按快捷键”Alt+U”进入库文件管理界面,如图4.2所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_33.png?direct |图4.2}} |
- | * 图4.2 | + | |
* 点击左下角的”From Local”从本地安装库文件,如图4.3所示。 | * 点击左下角的”From Local”从本地安装库文件,如图4.3所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_34.png?direct |图4.3}} |
- | * 图4.3 | + | * 选择下载的离线包文件,点击“打开”,进入解压安装过程,直到安装完成,如图4.4所示。 |
- | * | + | {{ :icore4t:icore4t_ide_1_35.png?direct |图4.4}} |
- | * 选择下载的离线包文件,点击“打开”,进入解压安装过程,直到安装完成,如图4.3所示。 | + | |
- | * | + | |
- | * 图4.4 | + | |
* 库安装完成,如图4.5所示。 | * 库安装完成,如图4.5所示。 | ||
- | * | + | {{ :icore4t:icore4t_ide_1_36.png?direct |图4.5 }} |
- | * 图4.5 | + | |
=== 三、 iCore4T的供电与下载 === | === 三、 iCore4T的供电与下载 === | ||
- | + | {{ :icore4t:icore4t_ide_1_37.jpg?600 |图1.1}} | |
- | 图1.1 | + | |
* 图1.1我们选使用的仿真器是我司研发的iTool3仿真器,程序下载时,在Keil MDK的Debug栏选择仿真工具为CMSIS-DAP Debugger(如使用其他仿真器请自行更改),如图1.2所示。 | * 图1.1我们选使用的仿真器是我司研发的iTool3仿真器,程序下载时,在Keil MDK的Debug栏选择仿真工具为CMSIS-DAP Debugger(如使用其他仿真器请自行更改),如图1.2所示。 | ||
- | + | {{ :icore4t:icore4t_ide_1_38.png?direct |图1.2}} | |
- | 图1.2 | + | |