1、引言
在当今这个模拟电子技术看似被冷落(其实无处不在)和数字电子技术主导的信息时代,对于刚入电子信息相关专业的大中专学生或需要转型进入电子产品硬件研发行业的工程师而言,首先面对的第一个问题是:8位的51单片机和32位的基于Cortex-M3内核的STM32单片机哪一个作为电子技术入门的硬件平台更合适?在综合收集网上相关信息后,我相信很多刚入行的朋友,都应该被支持51单片机和STM32单片机任一种硬件平台作为入门的理由搞得不知所措。
我虽不才,但是,也从事硬件研发工作十年之久。因此,我也想从自己的角度给各位刚入行或准备进入电子产品硬件研发行业的工程师和大中专学生一个尽可能全面的参考依据。当然,我发布的言论,也仅仅是代表我个人的观点,各位朋友如何做出抉择,依旧要考各位朋友自己斟酌。
由于在国内,STC系列的51单片机市场占有率最高,参考资料和使用人群众多,因此,在下文中,我们将以STC单片机作为51单片机的代表。正如,STM32单片机作为基于ARM公司Cortex-M3内核单片机的代表一样。在这里STC单片机是51单片机的代表,STM32是基于ARM公司Cortex-M3内核单片机的代表。
2、从易到难的学习规律
我想各位朋友都应该知道学习的基本规律就是:从易到难。无论我们学习任何知识、经验和技能,都要遵循这个规律,否则,好高骛远的后果就是:要么面对重重困难,选择放弃,或者,从头再来。
图1
STC单片机与STM32单片机相比,具备以下优点:
(1)STC单片机内部结构比STM32单片机简单,便于初学者理解单片机的经典结构。虽然STC单片机和STM32单片机都是哈弗计算机结构,但是,STC单片机的内部结构相对而言,更为简单。
(2)STC单片机寄存器数量比STM32单片机少了很多很多。STC单片机的寄存器只有几十个,可是STM32单片机的寄存器有几百个。两者完全不在一个数量级上。由于MCS-51、Cortex-M3、Cortex-M4、Cortex-A9、Cortex-A73或者MIPS等等单片机内核及片内外设,都是通过程序操作寄存器实现特定功能的,因此,寄存器数量只有几十个的STC单片机,相对而言,更容易让初学者入门学习。
(3)STC单片机采用MCS-51指令集,其汇编指令一百多条,比STM32少了很多很多。相对少的汇编指令集,能够让初学者相对快速的了解运算处理器汇编指令的功能、结构与计算机体系结构之间的关系。
(4)最新版本的STC8系列单片机具备下载程序方便和自身就是仿真器的特点,节约初学电子产品设计技术的资金投入,学习开发技术方便快捷。STM32需要单独购买独立的Jlink仿真器才可以仿真。
(5)STC单片机具备相对简单的经典体系结构,使初学者不必花费太多精力在其硬件本身,可以集中精力掌握好后续任何类型单片机开发的基础语言:C语言。同时,也可以掌握电子产品基本的设计思想、经验和技能。
因此,综上所述,根据我们由浅入深和从易到难的学习规律可知:初学电子产品开发技术的工程师和大中专学生,应先学习和掌握采用STC单片机开发电子产品的技能。这是基础技能。
3、鱼和熊掌需依次兼得
STC单片机和STM32单片机都是采用独立的数据和地址总线访问数据和程序存储器的哈弗计算机结构。STC单片机是基于MCS-51内核的8位单片机,STM32是基于Cortex-M3内核的32位单片机。两者都具备单芯片内集成计算机的核心运算处理器和不同功能的外设。STC单片机和STM32单片机在国内应用都非常广泛,资料也非常多,入门需要的信息、资源、工具和软件等等都比较丰富。这两种芯片的这些特点和现实,决定了当前一个非常重要的现实:硬件研发工程师有必要全部掌握采用STC单片机和STM32单片机开发产品的技能。
4、总结
入门学习建议:学习和掌握采用STC单片机研发产品的思想、知识、经验和技能。这是硬件研发工程师的基本技能,也是学习32位和64位SOC芯片的基础。
当前技术发展的现实告诉我们一个现实:硬件研发工程师有必要全部掌握采用STC单片机和STM32单片机开发产品的技能。
物联网STM32入门 - 直播课程 - 创客学院www.makeru.com.cn