学32位MCU需要有51单片机基础吗?
本文将从技术差异、开发环境、学习难度和市场就业这四方面对比32位MCU与51单片机。先学哪一个,看似是一个选择题,但二者并不冲突,最好全面掌握。正所谓技多不压身,学的技术越多,选择就越多,越灵活。但如果时间有限,精力有限,那就需要评估效率,找到最优解。
学32位MCU需要有51单片机基础吗?这个大问题可以分解为三个小问题。
- 只会51单片机是不是落后了?
- 32位MCU能不能零基础入门?
- 先学51单片机,再学32位MCU会更容易吗?
在回答这三个问题之前,我们必须先全面了解32位MCU和51单片机的现状,并从各项指标的对比中来寻找答案。
技术差异
技术参数 | 8051单片机 | 32位MCU |
---|---|---|
性能 | 8位8051内核,1970年代(不再更新) | 32位ARM内核(Cortex-M系列持续更新) |
主频 | 8~35MHz | 72~550MHz |
内存 | 2KB~128KB | 32KB~2M |
核心功能 | 2~5个定时器、固定的外部中断引脚,内置ADC。由于片上外设少,大量功能需要使用IO接口模拟 | 5~13个高级定时器,所有IO可作为外部中断,内置ADC,DAC和DMA,RTC时钟,JTAG调试接口,内置CAN以太网接口,SDIO接口,USB接口,IIC接口,SPI接口 |
并不是说32位MCU就比51单片机高级,51单片机完全可以胜任一些简单的开发任务。就算智能手机再好,对于老年人来说,功能机就已经足够使用了。所以,在多种多样的需求面前,不是性能决定一切。但从速度、内存和片上外设来看,51单片机的性能是没有提升空间的,无法做高级应用。而32位MCU的性能可上可下。就像智能手机既有功能机的打电话、发短信功能,又有摄影、录像、WiFi和蓝牙等高级功能。
开发环境
工具 | 8051单片机 | 32位MCU |
---|---|---|
编程语言 | 汇编/C语言 | C语言/MicroPython |
调试工具 | 第三方51仿真器 | DAP-LINK/ST-LINK等官方仿真器 |
开发环境 | KEIL C51 | KEIL/IAR/CubeIDE |
图形化编程 | 无 | CubeMX等 |
RTOS系统 | 由于内存小,可用系统少 | FreeRTOS/RT-Thread |
从开发工具方面来看,51单片机显得很简陋。正由于它简陋,涉及的技术少,所以初学者觉得更容易上手。32位MCU涉及的工具很多,入门要学很多东西,初学者难免产生畏惧。一旦掌握了一些高效开发工具的用法,会极大提升开发效率。功能机上手快,小朋友几天就能玩明白。而成年人也难以掌握智能手机的全部功能,但却能凭借智能手机打开新世界的大门。
学习难度
学习 | 8051单片机 | 32位MCU |
---|---|---|
参考示例 | 很多 | 很多 |
教程数量 | 多(大多距今多年) | 多(不同时期都有很多) |
学习难度 | 入门容易,提升困难 | 寄存器难,库API中等,RTOS难 |
对于理解能力强的同学,直接学32位MCU并不算太困难。
市场角度
市场 | 8051单片机 | 32位MCU |
---|---|---|
应用领域 | 工业控制/家电/机电/自动化 | 智能硬件/物联网/汽车/手机 |
市占率 | 非常高(各有细分市场) | 非常高(各有细分市场) |
发展趋势 | 呈淘汰状态(仅剩传统行业) | 呈发展上升状态(顺应产业升级) |
价格 | 非常低(适合功能少的应用) | 适中(对标51的有STM8等) |
由于51单片机性能有限,只能在传统的工业控制等领域徘徊,已经不适应当下的物联网等新领域。但是51单片机在传统领域当中还是有相当的优势和低位。在嵌入式行业,任何一款单片机都有它生存的空间。
就业前景
从开发者就业的角度来看,32位MCU算是新兴行业,它的工资更高,未来的发展空间也会更多一些。但是,由于32位MCU现在已经平民化、普及化,掌握32位MCU的人越来越多,就业上也是竞争激烈。在之前学习51单片机的人,转行做32位MCU可以找到不错的工作,但以后会越来越难。但是从另一个层面也可以看出,嵌入式行业整体在做技术升级和产业升级,对开发者的技能要求也越来越高了。这并不是一件坏事,但越来越卷也是一定的,需要付出更多的努力和学习时间。
明确结论
下面就来回答一下上面提到的三个小问题。
1. 只会51单片机是不是落后了?
如果读者已经是长期从事自动化、普通家电和工业控制等领域的老工程师,那么只会51单片机就还不算落后。如果读者想做技术升级,想从事物联网、智能硬件、汽车电子和手机电子周边产品等的开发,那么只会51单片机就是落后了。
2. 32位MCU能不能零基础入门?
这需要根据读者的基础来确定。如果读者年龄较大,思维方式还是从功能机过渡到智能手机,那么用51单片机的思维方式还是很难入门32位MCU。如果读者的年龄较小,从小就接触智能手机,那么先天就具有智能手机的思维方式,那么就可以直接从32位单片机入门。
3. 先学51单片机,再学32位MCU会更容易吗?
这个问题的潜台词是:51单片机只是为了更好地学习32位MCU的过渡产品。如果最终的目的是学习32位MCU的话,那么可以先试试从STM32入门。
如果能顺利学习,那么就直接继续深入,想回头再学51单片机也会很简单,甚至在需要用到的时候再去学习也来得及。
如果从STM32入门失败,有大量内容无法理解,那么可以先放弃32位单片机,转从51单片机入门,但是51单片机不需要太深入学习,只要掌握编写流水灯、数码管和简单的电机控制就可以了。达到这个水平就可以转到32位单片机来得到更大的发挥空间。
32位单片机难学的本质
所谓的32位单片机难学,这个问题的本质是对C语言的理解不够透彻。无论是学习51单片机还是学习32位MCU,本质上都是向着两个目标而努力,一是学会单片机硬件电路设计原理,而是学会C语言编程的逻辑和技巧。