|
最近我手里得到了意法半导体的一个新的开发板:STM32Nucleo。该开发板基于STM32单片机,并且引脚兼容Arduino UNO。也就是说可以使用适用于Arduino的数百个扩展板。然而这仅在理论上是可行的,因为Arduino世界里最重要的方面是软件(基于库、例程等),来组成这个受欢迎的平台。 有很多关于如何基于STM32平台开始编程的教程和指南。ST提供了一个官方的框架,叫做STM32Cube,生来就是为了加快该平台的开发过程。STM32是一个真正强大且复杂的平台,并且该控制器的学习曲线可以和Atmel AVR类似的简单平台相比较(Arduino不过是围绕AVR系列的一个巨大的代码样板而已)。但是STM32Cube不足以开始开发你的Nucleo板。你也需要一个IDE(不是严格必须的,但是会很有用)和编译器套件。ST仅提供支持(包含文档和例程)商业化的IDE,如IAR。如果你想简单地尝试一个低成本的平台,如NUCLEO板(成本低于€15),这会是一个很大的问题。好消息是,你并不需要一个5.000美元的IDE:你需要的是Eclipse和GCC(加上我们将在本系列的下部分看到的一些其他的工具)。坏消息是,并不能简单而快速的建立一个工作开发环境。 我花了两个周末的时间来在STM32 Nucleo板设置编写代码、编译、Flash下载和调试应用程序的工作环境,解决了几个错误,然后才建立起一个完好工作的环境。在这个系列中,由三部分组成,我想分享如何建立STM32平台的开发环境。在这第一篇文章的最后,我们将能够编译NUCLEO的示例程序(一个简单的LED闪烁程序 - 电子学的“Hello World”),并且使用ST的ST-Link Utility工具上传至NUCLEO板。现在我不会给你太多的细节(但是我会认为你知道C语言和单片机编程的基础知识)。要设置工具链,我们将使用这两个基本工具: Eclipse:它是一个流行的免费开源IDE,广泛应用在Java世界,同时也可用于C/ C++编程。我们将使用最新的稳定版本:4.4(叫做Luna)。 GCC for ARM-Cortex:STM32是基于ARM的Cortex内核(M0,M3,M4等)的微控制器家族。这意味着我们可以用最好的编译器之一(或者,也许是最好的),可以免费获得。我们将使用ARM的Cortex平台的交叉编译器版本。
该系列教程提到的系统和硬件需求最低是: ■ Windows SP SP3 32位(整个系列都是基于XP系统,但是我认为在Vista和Win7系统也可以使用。对于64位的平台,请选择相应的安装包)。 ■ 一个STM32 NUCLEO开发板(具体的型号无关)- 我的例程是基于STM32Nucleo-F401RE板。 ■ Java 7.17或者更高版本,在安装其他软件之前(可以在本页面下载),请确保安装有最新版本的Java7;不要说我没提醒过你。
安装Eclipse Luna 第一步安装Eclipse。实际上,Eclipse并不是开始使用NUCLEO板编程的很必要的条件。GCC和其他一些工具足以编译和Flash编程MCU。如果你属于那类只喜欢用Vim编辑器写代码的人(像我一样),那么我将在下篇文章介绍这个主题。在这个系列中,我会尽量保持较低的学习曲线,所以我选择使用Eclipse IDE。本教程基于Eclipse的最新版本,叫做Luna(4.4)。你也可以在本页面下载“Eclipse IDE for C/C++ Developers"的release版本。该版本主要为使用C/C++编程语言开发应用程序而设计。
下载的文件仅仅是一个ZIP的压缩包。你可以解压到C:\STM32 Toolchain目录(注意:路径并不是强制的,但是我假设在这些教程中你将整个工具链安装在该目录,如果你决定将工具链安装在其他路径,请随后改写我的指令)。安装完成后,你可以启动可执行文件C:\STM32Toolchain\eclipse\eclipse.exe。Eclipse第一次启动时,它会向你询问默认的项目文件夹。我建议使用路径C:\STM32Toolchain\projects。当IDE启动后,跳转到Help->Install New Software...。
下一步,选择C/C++开发工具库,并且仅勾选“CDT Main Feature”条目,如下图所示:
现在,点击“Next”,并按照说明进行操作。安装需要一段时间来完成。最后根据要求重新启动IDE。
安装GNU ARM plug-ins for Eclipse 现在我们要安装GNU ARM plug-ins for Eclipse。这些接插件向Eclipse CDT添加了丰富的功能,并集成到GCC ARM 工具链接口。此外,它们还为STM32平台提供了特定功能。插件是由Liviu Ionescu开发和维护,在提供GCC ARM工具链的支持上工作非常出色。如果没有这些插件,几乎不可能使用Eclipse在STM32平台开发和运行代码。要安装GCC ARM插件,转到Help->Install New Software...,然后单击“Add...”按钮。使用以下方式填写文本字段: 名称:GNU ARM Eclipse Plug-ins 路径:http://gnuarmeclipse.sourceforge.net/updates 然后点击“OK”按钮。一段时间后,将显示可用插件的完整列表。选择需要安装的插件,如下图所示:
然后,单击“Next”,并按照说明进行操作。当要求时,重新启动IDE。
安装GCC ARM工具链 下一步安装ARM Coretex平台的GCC工具链。你可以从这个网站为你的操作系统下载一个预生成版本。我成功地测试了4.8-2014-q3-update版本。你可以下载该安装程序,并开始进行安装。当被询问时,安装工具链到目录: C:\STM32Toolchain\gnu-arm\4.8-2014q3(就像我之前说的,你可选择你想要安装的路径,但是在接下来的步骤我假设安装在该路径)。重要提示:我强烈建议不要勾选条目“Add path to environment variable”,特别是你在PC端液晶安装有其他的编译器或者IDE(例如,如果你使用MinGW或者相似的Windows包管理器)。现在继续下一步。
安装生成工具 历史上的Windows缺少一些UNIX世界必不可少的工具。其中之一就是make,该工具由Richard Stallman制作,控制使用C/C++编写的程序的编译过程。如果你已经安装了像MinGW或者其他类似的产品,可以跳过这个步骤。如果没有安装,你可以安装GCC ARM plug-ins for Eclipse同一作者制作的生成工具包。你可以在这里下载安装程序。当询问时,将这些工具安装到文件夹: C:\STM32Toolchain\Build Tools。重启Eclipse。
安装STM32 Nucleo板的ST LINK驱动 这是一个非常重要的一步。请注意以下的操作。在安装其他软件之前,最好先安装STM32Nucleo板的驱动程序。 NUCLEO板的主要特点之一是它已经提供了STM32 MCU的片上编程器:ST-Link。事实上,Nucleo板是由两部分组成:ST-Link编程器(带有USB接口)和目标板(带有Arduino形式的扩展插头)。
需要强调的是和商业ST-Link编程器不同的是,Nucleo板提供了版本较新的ST-Link:2.1版本。也就是说,即使你已经有一个ST-Link编程器,你也需要更新驱动程序。可以在这里下载最新的驱动程序。安装驱动程序,检查一切是否工作正常。如果连接Nucleo板到PC,你应该看到两个新的外设:ST-Link编程器和一个虚拟串口。如果一切工作正常,可以继续下一步。
安装STM32CubeMX和ST-Link Utility 当STM32 MCU启动时,需要硬件配置才能正常工作。该配置取决于特定的MCU及所选择的硬件的配置。当CPU启动时必须先执行该配置。不幸的是,这并不是一项简单的任务,它需要具体MCU的深入了解。但是,我们有一项更快捷的方式来完成这项工作。ST为我们提供了一个专门生成初始化代码的工具。这个工具叫做STM32CubeMX,而且在这个系列教程的下一部分会非常有用。那么,你可以在这里下载该工具。根据建议的配置进行安装。 为了简化教程中的这部分,我们没有使用Eclipse IDE里的任何调试工具。而是使用官方的ST-Link Utility工具编程Nucleo板。你可以在这里下载该工具。使用建议的配置进行安装。 ST-Link安装完成后,将Nucleo板连接到PC,检查ST-Link Utility是否检测到该Nucleo板。 |