STM32编程与51编程一样吗?区别是什么?

demi的头像
demi 发布于:周三, 12/04/2019 - 09:05 ,关键词:

作者:华清远见王老师

单片机是指一个集成在一块芯片上的完整计算机系统。尽管它的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。

早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。我们说的51一般是指51系列的单片机,型号有很多,常见的有 STC89C51、 AT89S51 ,其中国内用的最多的是STC89C51/2  

随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。

当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。其中ST公司的32位微处理器STM32系列占据了大量的市场份额(华清远见近期与ST公司也有STM32项目方向的合作,主要是STM32MP1多核微处理器系列,ST公司最新推出的第一款MPU产品,感兴趣的朋友也可关注这里)。

那么作为开发者在开发51系列单片机与stm32系列单片机时存在什么样的差异性呢,下面就以国内用的最多STC89C51为51系列单片机代表和stm32对比讨论下。

1. 编程语言

由于51单片机结构相对简单,所以通常多使用汇编语言和C语言编程。而STM32系列的开发工作,不会采用汇编语言,因为工程量巨大,寄存器太多了,位数也多。

2. 编程方式

51单片机的任何器件只需要配置寄存器打开就可以进行编程,而STM32系列单片机则需要先打开对应的时钟,包括开启后打开外部时钟(晶振)才开始工作。

3. 库函数不同

由ST厂商推出的STM32系列单片机,ST厂商给了丰富的函数库,可以直接使用库函数,所以比起普通的51单片机在程序编写方面要更加的省时。

4. 资源不同

STM32的内部资源(寄存器和外设功能)较普通的51单片机都要多,基本上接近于计算机的CPU了,所以在程序编写上能有更多的选择。

结论:

通过上边的对比可以看到,虽然可以使用相同的编程语言进行程序编写,但是在编程方式和编程的快捷程度上均是STM32比较优秀。

51确实是经典,但也确实有点过时了。而无论是51系列还STM32系列,都同属于单片机,可以说STM32系列是51系列的继任者,随着现在技术发展,对硬件的拓展性和处理能力上有了更高的要求。STM32无论是内核部分还是总线宽度;无论是速度、功耗、外设都比51系列强大。

延展阅读:嵌入式与单片机的渊源

用一句话来说:单片机是属于嵌入式的一个分支。

从嵌入式的发展史上看:早在20世纪60年代,嵌入式技术就开始应用于通信领域。70年代,微处理器的广泛应用形成了一个广阔的嵌入式应用市场。80年代,单片机成为嵌入式计算机系统异军突起的一支新秀。其后发展的DSP产品则进一步提升了嵌入式计算机系统的技术水平。到了21世纪PC互联网时代及移动互联网时代,嵌入式计算机系统应用到了各类网络。而在万物智联的今天,物联网、人工智能产业的正在快速的发展,也再次带火了嵌入式,软硬件结合的浪潮将嵌入式带入了更广阔的应用舞台。

来源: 华清远见

围观 297