目录
0. 《STM32单片机自学教程》专栏
本文作为专栏《STM32单片机自学教程》专栏其中的一部分,返回专栏总纲,阅读所有文章,点击Link:
6.1.STM32的常用开发环境
STM32开发常见的开发环境如图6.1-1所示,按照普及率进行了排名,用的最多的就是Keil公司的MDK,下面分别进行介绍。
图6.1-1 STM32的常用开发环境
6.1.1 MDK
图6.1-2 MDK软件
STM32的开发环境MDK(也称为MDK-ARM Version 5或MDK-ARM)是由德国Keil公司(现已并入ARM公司)开发的一款针对ARM Cortex-M系列微控制器的完整软件开发环境。界面美观,简单易用,是 STM32 最常用的集成开发环境。它为嵌入式软件开发者提供了从项目创建、代码编写、编译链接、仿真调试到最终程序烧录的一整套解决方案。在ST(意法半导体)开发环境中,MDK常被用于各种基于ARM Cortex-M内核的MCU(微控制器)的程序开发。
MDK与Keil的关系在于,MDK是Keil公司的一个集成开发环境(IDE),专门针对ARM公司的微控制器进行软件开发。Keil公司开发的基于μVision IDE,支持绝大部分8051内核的微控制器开发工具。而MDK-ARM则是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具,它集成了业内最领先的技术,包括μVision集成开发环境与RealView编译器。
在开发过程中,使用MDK可以方便地进行项目创建、代码编写、编译链接和仿真调试等操作。MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具,支持ARM7、ARM9、Cortex-M4/M3/M1、Cortex-R0/R3/R4等ARM微控制器内核。这使得STM32的开发者能够轻松地进行嵌入式软件的开发和调试。
6.1.2 STM32CubeIDE
图6.1-3 STM32CubeIDE
STM32CubeIDE是ST于2019年新推出的一款多功能的集成开发工具,它集成了TrueSTUDIO和STM32CubeMX插件,并基于GDB进行调试,它允许集成数百个现有插件,这些插件完成Eclipse的功能。
TrueSTUDIO插件是一款建立在EclipseCDT、GCC和GDB的C/C++集成开发工具,其具有项目创建和管理、代码编辑、代码编译以及代码在线调试等功能。
STM32CubeMX插件具有图形化配置功能,可以直观地选择MCU/MPU型号、动态配置引脚和设置时钟树、动态设置外围设备和中间器件的模式,可以自动处理引脚冲突和生成初始化代码。
TrueSTUDIO和STM32CubeMX的强强联手,使STM32CubeIDE得以和MDK进行媲美。STM32CubeIDE完全开源免费,并且跨平台,目前支持Windows、Linux和macOS多个操作系统。但是STM32CubeIDE只是ST公司芯片的开发环境,MDK所支持的芯片就要广的多了。
6.1.3 EWARM
图6.1-4 IAR EWARM
EWARM,全称为IAR Embedded Workbench for ARM(IAR EWARM),是由IAR Systems公司开发的一款集成开发环境(IDE),专为ARM架构的微控制器设计。它提供了一个综合性的开发环境,用于编译、调试和优化基于ARM架构的嵌入式应用程序,适用于STM32等ARM Cortex-M系列微控制器的开发。
IAR EWARM的主要特点包括:
- 强大的编译器:EWARM配备了一款高效而稳定的C/C++编译器,能够生成高度优化的机器语言代码。这种编译器具有出色的代码大小和执行速度优化能力,保证了嵌入式应用程序的高效运行。
- 综合性的开发环境:EWARM提供了一个集成的开发环境,包括源代码编辑器、项目管理工具、构建系统和调试器等。开发人员可以在一个界面中完成代码编写、构建、调试等开发任务,简化了开发流程,提高了开发效率。
- 广泛的芯片支持:EWARM支持多个芯片系列,包括Arm Cortex-M、Arm Cortex-R和Arm Cortex-A等。这使得开发人员可以根据项目需求选择适合的芯片,并使用EWARM进行开发。
- 入门容易、使用方便:EWARM具有友好的用户界面和直观的操作方式,使得初学者可以快速上手。同时,它还提供了丰富的文档和示例代码,帮助开发人员更好地理解和使用EWARM。
- 代码紧凑:EWARM生成的代码紧凑,占用的内存空间较小,这对于资源有限的嵌入式系统来说非常重要。
此外,IAR EWARM还包含一个全软件的模拟程序(simulator),用户不需要任何硬件支持就可以模拟各种ARM内核、外部设备甚至中断的软件运行环境。从中可以了解和评估IAR EWARM的功能和使用方法。对比 MDK,IAR的使用人数少一些。
6.1.4 几种开发环境的比较
在众多IDE里,以前MDK和IAR的用户是比较多的,现在感觉使用STM32CubeIDE的已经超过IAR。很多人一开始学习单片机的时候使用的是MDK或者IAR来开发,这两个IED使用起来简单、好用并且普及很广。例如MDK,其开发界面美观,不需要做很麻烦的配置就可以进行开发,编译速度快,并且具有一键下载功能,可以说是比较方便的,对初学者来说比较友好。不过,MDK是一款付费集成开发环境,如果要商用,需要联系Keil公司购买,而免费版或评估版要么有器件型号限制,要么有程序容量限制。
使用MDK进行开发,易于上手,操作简单,如果之前有接触MDK的人,可以更快上手STM32MCU开发。但MDK没有没有图形化配置界面,也没有自动生成初始化代码的功能,需要自己手动去实现,不过这有助于加深学习者对底层操作过程的理解。
使用STM32CubeIDE进行开发,可以借助STM32CubeMX插件的图形化配置功能进行配置,操作直观,可以自动生成初始化代码。STM32CubeMX插件把很多东西封装的比较好,就是因为封装的比较好,所以我们可以直接跳过对部分底层的操作,不过这不利于对底层的理解。当然,我们也可以不使用STM32CubeMX插件的图形化配置功能和初始化代码生成功能,可以直接使用TrueSTUDIO插件的功能,这个时候可以在STM32CubeIDE上导入已有的TrueSTUDIO工程来进行开发也是可以的,使用上就和TrueSTUDIO、MDK差不多。STM32CubeMX插件的图形界面操作加上TrueSTUDIO插件的ECLIPSE/CDT框架,使得STM32CubeIDE的配置过程比MDK要麻烦,而且没有一键下载功能,使用上会让人觉得有一种―慢的感觉,比起MDK,STM32CubeIDE有点慢、卡顿。
6.2. MDK安装
MDK的安装可参考如下视频:
MDK5 的安装分为两步:1,安装 MDK5;2,安装器件支持包。
6.2.1 安装MDK5
MDK5 的安装比较简单,需要提醒一下在选择安装路径的时候,建议大家将 Pack 的路径和 Core 的路径放在一个盘中。安装目录及路径不要有任何中文汉字在里面,最好电脑系统名和用户名,都不要有任何中文。
6.2.2 安装器件支持包
器件支持包可以选择离线和在线安装方式,具体请参考前面视频链接。
需要注意的是MDK 是一款付费集成开发环境,默认软件是试用版的,只能编译不超过32K的代码,我们作为学习者仅做学习使用,可以使用注册工具注册,参考上述视频。如果大家要商用,要从Keil 公司购买!
6.3.安装STLINK驱动
STM32 可以通过 DAP、STLINK、JLINK 等仿真调试器进行程序下载和仿真,我们使用的是STLINK,STLINK的驱动可以直接在我们Keil软件的安装目录里就可以找到,如下图。
图6.3-1 STLINK驱动安装
6.4.安装USB转串口驱动
安装 CH340USB 虚拟串口驱动,以便我们使用电脑通过 USB 和 STM32 进行串口通信。这个网上下载资源很多,这里就不赘述了。
参考资料:
【1】哔站江协科技STM32入门教程
【2】《STM32单片机原理与项目实战》刘龙、高照玲、田华著
【3】《ARM Cortex-M3嵌入式原理及应用》黄可亚著
【4】《STM32嵌入式微控制器快速上手》陈志旺著
【5】《STM32单片机应用与全案例实践》沈红卫等著
【6】《野火STM32开发指南》
【7】《正点原子STM32开发指南》