一、背景
因为单片机学习是软硬结合的,离开软件,单片机无法工作。所以需要准备合适的编程环境。
二、需求
作为学习用的编程环境,我觉得应该满足:
- 上手容易;不需要花很多时间学习后才能正确使用。
- 环境参数设置方便,有些编程环境参数设置过于复杂,对于做实际项目是有价值的,但对于学习者而言,就是障碍了。
- 无版权问题(无需花钱购买,或盗版)
- 有完善、丰富的参考资料。
三、选择及准备
3.1 选择
因为目前硬件基础选择的是 STM32 系列单片机,可选择的编程环境有:
- 经典的IAR或MDK编程环境;很多专业人员均使用,其最大优势是支持几乎所有公司的单片机,这在单片机品种百花齐放时有价值,但目前已集中于 Cortex_M 系列内核,其优势不再那么明显。因为是针对专业人员的,且支持了很多种单片机,上手及参数设置均有一定难度,对学习者最大的障碍是:有版权,需要购买。在如今国内逐渐尊重版权的氛围下,盗版已不能再堂而皇之了。
- ST公司提供的 STM32CubeIDE;其最大的优势是:将其产品的功能发挥到极致,且能不断跟随其产品升级而升级。因为是为自家产品服务的,所以无需付费即可使用。但由于ST公司的STM32系列单片机有好几百种,它为了客户能方便、可靠使用其产品,IDE环境中几乎涉及到所有单片机的所有功能,使用起来有一定难度,对学习单片机而言并非有价值,尤其是对于只有几十学时的大学生而言,选择STM32只是载体,并非是为了学会STM32,作为日后工作的基础。单片机学习的重点是掌握单片机应用的方法,可以用其解决现实问题,未来工作中未必使用STM32,所以消耗过多时间掌握ST公司针对其产品的编程环境有点本末倒置。
- 开源的Arduino IDE编程环境;Arduino IDE早期是基于Atmel公司的AVR系列单片机推出的一个针对非工科人员使用的单片机开发环境,其目的是降低使用者对基础知识的要求,能很快的使用单片机解决实际问题,初衷是实现“与硬件无关的编程”。但推出后备受推崇,因为即便是专业人员,在要求不高时,或者临时用一下的场景,并不愿花很多时间去看编程环境的使用说明,能用起来即可,所以也深受欢迎。由于是开源,有很多人分享相应的硬件驱动程序,更加简化了使用。如今,Arduino已成为一种较为流行的单片机编程模式。很多芯片厂家按其思路,将自己的芯片融入到Arduino IDE 环境中,以期降低学习者使用其芯片的门槛。ST公司就以开源方式提供了支持STM32的Arduino 环境,称之为:STM32Duino,并且整合到 ArduinoIDE中,很方便加入,使用方式和Arduino 一样。使用STM32Duino作为编程环境最大的不足是:缺少系统的技术文档!需要靠自己摸索;同时由于封装的比较好,对单片机内部的了解会有所减少。
除了上述几种外,好像还有