正点原子已经有《STM32MP1 M4 裸机 HAL 库开发指南》了,为何还要出《STM32MP1 M4裸机 CubeIDE 开发指南》呢?不错,两个文档都是基于 HAL 库进行开发,前者基于 MDK 进行开发,后者基于 STM32CubeIDE 进行开发,只是换了一个 IDE,本质上换汤不换药,但还是有差别的,下面我们来说说它们的优势和差异。
ST 公司提供了多达 20 种 IDE 来对 STM32 的开发支持,在众多 IDE 里,MDK 和 IAR 的用户是比较多的,很多人一开始学习单片机的时候使用的是 MDK 或者 IAR 来开发,这两个 IED使用起来简单、好用并且普及很广。例如 MDK,其开发界面美观,不需要做很麻烦的配置就可以进行开发,编译速度快,并且具有一键下载功能,可以说是比较傻瓜式的,对初学者来说比较友好。不过,MDK 是一款付费集成开发环境,如果要商用,需要联系 Keil 公司购买,而免费版或评估版要么有器件型号限制,要么有程序容量限制。
使用 MDK 进行开发,易于上手,操作简单,如果之前有接触 MDK 的人,可以更快上手STM32 MCU 开发。但 MDK 没有没有图形化配置界面,也没有自动生成初始化代码的功能,需要自己手动去实现,不过这有助于加深学习者对底层操作过程的理解。
使用 STM32CubeIDE 进行开发,可以借助 STM32CubeMX 插件的图形化配置功能进行配置,操作直观,可以自动生成初始化代码。STM32CubeMX 插件把很多东西封装的比较好,就是因为封装的比较好,所以我们可以直接跳过对部分底层的操作,不过这不利于对底层的理解。
当然,我们也可以不使用 STM32CubeMX 插件的图形化配置功能和初始化代码生成功能,可以直接使用TrueSTUDIO插件的功能,这个时候可以在STM32CubeIDE上导入已有的TrueSTUDIO工程来进行开发也是可以的,使用上就和 TrueSTUDIO、MDK 差不多。
STM32CubeMX 插件的图形界面操作加上 TrueSTUDIO 插件的 ECLIPSE/CDT 框架,使得 STM32CubeIDE 的配置过程比 MDK 要麻烦,而且没有一键下载功能,使用上会让人觉得有一种"慢"的感觉,就笔者的使用体验来看,比起 MDK,STM32CubeIDE 是有点慢、卡顿,而且还有一些小 bug,但不影响使用(笔者使用最新的 1.4.0 版本)。
以上是笔者的理解,两种 IDE 各有千秋,大家可以根据自己的需要选择相应的 IDE 来进行
开发。
——摘自《STM32MP1 M4 裸机 CubeIDE 开发指南 V1.5.2》P50-51