历史上的今天
今天是:2025年02月14日(星期五)
2020年02月14日 | 一文看懂STM32单片机和51单片机区别
2020-02-14 来源:elecfans
单片机简介

51单片机简介
应用最广泛的8位单片机当然也是初学者们最容易上手学习的单片机,最早由Intel推出,由于其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,堪称为一代“经典”,为以后的其它单片机的发展奠定了基础。
51单片机之所以成为经典,成为易上手的单片机主要有以下特点:
51单片机特性
1、从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,处理对象不是字或字节而是位。不但能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。
2、同时在片内RAM区间还特别开辟了一个双重功能的地址区间,使用极为灵活,这一功能无疑给使用者提供了极大的方便,
3、乘法和除法指令,这给编程也带来了便利。很多的八位单片机都不具备乘法功能,作乘法时还得编上一段子程序调用,十分不便。
51单片机缺点
1、AD、EEPROM等功能需要靠扩展,增加了硬件和软件负担
2、虽然I/O脚使用简单,但高电平时无输出能力,这也是51系列单片机的最大软肋
3、运行速度过慢,特别是双数据指针,如能改进能给编程带来很大的便利
4、51保护能力很差,很容易烧坏芯片
51单片机应用范围
目前在教学场合和对性能要求不高的场合大量被采用。
使用最多的器件:8051、80C51

STM32单片机简介
由ST厂商推出的STM32系列单片机,行业的朋友都知道,这是一款性价比超高的系列单片机,应该没有之一,功能及其强大。其基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核,同时具有一流的外设:1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI等等,在功耗和集成度方面也有不俗的表现,当然和MSP430的功耗比起来是稍微逊色的一些,但这并不影响工程师们对它的热捧程度,由于其简单的结构和易用的工具再配合其强大的功能在行业中赫赫有名…其强大的功能主要表现在:
STM32单片机特性
1、内核:ARM32位Cortex-M3CPU,最高工作频率72MHz,1.25DMIPS/MHz,单周期乘法和硬件除法
2、存储器:片上集成32-512KB的Flash存储器。6-64KB的SRAM存储器
3、时钟、复位和电源管理:2.0-3.6V的电源供电和I/O接口的驱动电压。POR、PDR和可编程的电压探测器(PVD)。4-16MHz的晶振。内嵌出厂前调校的8MHz RC振荡电路。内部40 kHz的RC振荡电路。用于CPU时钟的PLL。带校准用于RTC的32kHz的晶振
4、调试模式:串行调试(SWD)和JTAG接口。最多高达112个的快速I/O端口、最多多达11个定时器、最多多达13个通信接口。
STM32常用的器件
使用最多的器件:STM32F103系列、STM32 L1系列、STM32W系列。

51单片机和STM32单片机的区别
51单片机是对所有兼容Intel8031指令系统的单片机的统称,这一系列的单片机的始祖是Intel的8031单片机,后来随着flash ROM技术的发展,8031单片机取得了长足的进展成为了应用最广泛的8bit单片机之一,他的代表型号就是ATMEL公司的AT89系列。
STM32单片机则是ST(意法半导体)公司使用arm公司的cortex-M3为核心生产的32bit系列的单片机,他的内部资源(寄存器和外设功能)较8051、AVR和PIC都要多的多,基本上接近于计算机的CPU了,适用于手机、路由器等等。
史海拾趣
|
请问各位大侠,在进行WINCE的应用编程中,加入自定义的字体资源时用AddFontResource,释放时用RemoveFontResource。 但是这只能是在同一个程序进程中进行的。如果是在一个进程中调用了AddFontResource,在另一个进程中用RemoveFontResource进行释 ...… 查看全部问答> |
|
平台:ARM920T 系统:linux 2.6.17 3G:华为E1750 在一款嵌入式linux系统的终端上做二次开发,需要使用E1750来进行无线通讯。采用usb_modeswitch来解决驱动问题。libusb-0.1.12和usb-modeswitch-1.1.2编译和安装都没问题。在执行usb-modeswitch - ...… 查看全部问答> |
|
已知:x = (s32)*(vs16 *)0x08000002 y = (s32)*(vs16 *)0x08000004 z = (s32)*(vs16 *)0x08000006 x,y,z内容时刻变化,如何将x,y,z的值保存到test.txt中。谢谢大家… 查看全部问答> |
|
我在Dev C++中调试ucosII,但出现不包含头文件oscpu.h? 我在Dev C++中调试ucosII,但编译出错,出现不包含头文件oscpu.h?但我明明已经在工程中添加了此头文件啊?为什么? 还有,在一个头文件:includes.h中,我写进了可能用到的其它头文件,然后在主程序test.c中包含#include \"includes.h\",然而,编译报错,说没 ...… 查看全部问答> |
|
24C256读写失败24C256读写失败程序停止在了while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));测试i2c引脚都为低电平//------------------------EEPROM 24C256 API---------------------------void &nbs ...… 查看全部问答> |
|
我准备用STM32的USB,当下位机的缓冲接近满的时候需要通知PC不再发数据。串口是通过RTS等线来实现, USB怎么做?另外看了一下USB虚拟串口的例程,好像没有涉及到这个问题。… 查看全部问答> |
|
统招本科 硕士优先(本科2年左右 硕士1年左右) 英文要求能读写即可 工作地点:上海西藏北路 面试:不出意外只需一轮 岗位职责:Responsibility: 1)The team members having following profile/ competence are highly apprec ...… 查看全部问答> |




