摘要:该文总结了(STC)51,STM8,Arduino,ESP8266/ESP32,STM32,树莓派等单片机的优缺点及使用情况,重点对比了ESP32和STM32的性能和使用范围。在今后一段时间里ESP32和STM32仍旧会被广泛应用。当然更需要根据不同的使用情况,选择更加适合的单片机。

1、51单片机/STC单片机:(低成本,寄存器编程)

最经典,使用最为广泛的8位单片机,广泛应用于低端市场。

主要优势:1、价格十分低是最大的优点,自从国产化之后,价格很低。2、开发资料十分丰富。3、完整的按位逻辑操作系统。

主要缺点:1、运行速度慢,性能与stm32单片机等相比相差很多,适用于对性能要求不高的场合。2、通信接口,定时器,中断等外设不如stm32丰富,片上资源较少,使用十分注意内存的使用。

STC公司(南通国芯微电子有限公司),已经占有了全球80%以上的51单片机的市场份额。近几年STC公司对51单片机进行了改进,所以运行速度、外设、稳定性等都有了很大的提升,而价格仍旧非常低。

2、STM8:(低成本,库函数编程)

STM8和51都是8位单片机,同样应用于低端市场,支持寄存器开发和库函数开发。与51单片机相比,stm8外设更多,在正常使用情况下stm8比51更有优势。但在恶劣环境中,51单片机比stm8抗干扰能力更强。

3Arduino:(在国外很流行,国内开源环境不好)

主要优点:1、Arduino最大的优势就是开源,软硬件完全开放,技术上不做任何保留。能根据现有丰富的库进行更改就能做复杂的项目。

2、上手速度很快,学习者不需要懂单片机硬件和寄存器原理。

3、代码可读性高,指令简单,只需要有一点C语言基础就能上手。

缺点:1、正版Arduino板价格稍贵。

2、适合用于DIY项目。

3、在国内误导下由于该开发板上手很快,中学生都能玩的转,被挂上低端玩具的名头。实际上该开发板性能碾压51和stm8。稳定性需要进一步确认。

4ESP8266ESP32:(性能很强,广泛用于物联网)

乐鑫聚焦物联网领域好多年了,先是推出了ESP8266这样的低价wifi芯片,安信可又推出了基于该芯片的wifi模组,使得基于wifi的物联网行业进步了一大块。要知道,传统的wifi模组,即便是最便宜的也要几十块钱。而ESP8266的出现,直接把价格控制在10元左右。2016年,乐鑫推出了ESP32,它的性能相比ESP8266又向前迈进了一大步,价格20元左右,同价格区间内几乎看不到对手。

外设对比

性能对比

外设

ESP8266

ESP32

模块

ESP8266

ESP32

GPIO

9个

24个

CPU核心数

单核

双核

I2C

任意IO

任意IO

主频

80M/160MHz

240Hz

SPI

支持

支持

蓝牙

蓝牙4.2

串口

1个

3个

WiFi速度

72.2Mbps

150 Mbps

以太网MAC

支持

PWM

任意IO

DAC转换

支持

ADC转换

支持

CAN总线

CAN2.0

根据表中可见ESP32可用引脚比ESP8266更多,且性能上升了不止一倍,有了ESP32一般都不用ESP8266了。ESP32总结下来:

优点:1、双核处理器能够多线程实时处理

2、高速主频240MHZ,对比STM32F1的72MHZ和STM32F4的168MHZ,速度快很多,而且价格上比STM系低很多。

3、自带蓝牙和Wifi,不用另外购置模块,降低了成本。

4、编程上可以使用arduino环境,编程难度比STM32低很多,开源项目很多,开发速度很快。

缺点:引脚数量过少仍旧是ESP32的弊端之一

在小吃机开发中需要大量的IO口来检测开关状态,同时需要大量引脚控制电机,因此选择了STM32。

但ESP32的性能、物联网开发以及价格上的优势都在STM32之上。

5、STM32:(目前国内主流的控制单片机)

STM32是一种基于ARM架构的32位微控制器。

优点如下:

1、通讯接口十分丰富,如USART,I2C,SPI,CAN,以太网通讯等。

2、可用GPIO数量非常多,可以控制大量设备。

3、定时器数量很多,中断系统也十分完善,能实现非常复杂的逻辑。

4、多路ADC和DAC功能,可用于读取大量传感器等。

5、可运行Free RTOS,RT thread,UCOS等实时操作系统,可用于控制复杂系统。

6、可连接SD卡,LCD屏,有摄像头接口,可读取USB功能等。

缺点:

1、目前国际芯片形势不好,价格一直在上涨。但STM32F1系列价格相较于STM32F4系列价格会低很多,如果不需要以太网、摄像头和DACD等功能时可以考虑F1系列。

2、上手有一定难度,需要一定的时间。

(目前小吃机购买使用的stm32)STM32F407ZGT6:

STM32:ARM内核32位微控制器。F:代表stm32子系列。407:ARM Cortex-M4内核,高达1MB闪存/192+4KB RAM,包含以太网,USB,和摄像头等接口。Z:144针脚。G:1MKb 闪存(大容量)。T:LQFP封装类型。6:工作温度范围-40~85℃。

命名规则:

STM32

F

407

Z

G

T

6

B

xx

1

2

3

4

5

6

7

8

9

1产品系列:

STM32代表ST品牌Cortex-Mx系列内核(ARM)的32位MCU;

2产品类型:

F:通用快闪(Flash memory);L:低电压(1.65~3.6V);F类型中F0xx和F1xx系列为2.0~3.6V;F2xx和F4xx系列为1.8~3.6V;W:无线系统芯片,开发版。

3产品子系列:

050:ARMCortex-M0内核;051:ARMCortex-M0内核;

100:ARMCortex-M3内核,超值型;101:ARMCortex-M3内核,基本型;102:ARMCortex-M3内核,USB基本型;103:ARMCortex-M3内核,增强型;105:ARMCortex-M3内核,USB互联网型;107:ARMCortex-M3内核,USB互联网型、以太网型;108:ARMCortex-M3内核,IEEE802.15.4标准;151:ARMCortex-M3内核,不带LCD;152/162:ARMCortex-M3内核,带LCD。

205/207:ARMCortex-M3内核,不加密模块。(备注:150DMIPS,高达1MB闪存/128+4KBRAM,USBOTGHS/FS,以太网,17个TIM,3个ADC,15个通信外设接口和摄像头)

215/217:ARMCortex-M3内核,加密模块。(备注:150DMIPS,高达1MB闪存/128+4KBRAM,USBOTGHS/FS,以太网,17个TIM,3个ADC,15个通信外设接口和摄像头)

405/407:ARMCortex-M4内核,不加密模块。(备注:MCU+FPU,210DMIPS,高达1MB闪存/192+4KBRAM,USBOTGHS/FS,以太网,17个TIM,3个ADC,15个通信外设接口和摄像头)。

415/417:ARMCortex-M4内核,加密模块。(备注:MCU+FPU,210DMIPS,高达1MB闪存/192+4KB RAM,USBOTGHS/FS,以太网,17个TIM,3个ADC,15个通信外设接口和摄像头)。

4管脚数:

F:20针脚;G:28针脚;K:32针脚;T:36针脚;H:40针脚;C:48针脚;U:63针脚;R:64针脚;O:90针脚;V:100针脚Q:132针脚;Z:144针脚;I:176针脚;

5Flash存存容量:

4:16KBflash;(小容量);6:32KBflash;(小容量);8:64KBflash;(中容量);B:128KBflash;(中容量);C:256KBflash;(大容量);D:384KBflash;(大容量);E:512KBflash;(大容量);F:768KBflash;(大容量);G:1MKBflash;(大容量)

6封装:

T:LQFP;H:BGA;U:VFQFPN;Y:WLCSP/WLCSP64;

7温度范围:

6:-40℃-85℃;(工业级);7:-40℃-105℃;(工业级)

8内部代码:

“A” or blank;A:48/32脚封装;Blank:28/20脚封装;

9包装方式:

TR:带卷;XXX:盘装;D:电压范围1.65V–3.6V且BOR无使能;无特性:电压范围1.8V-3.6V且BOR使能;

6、树莓派:(复杂计算,如图像识别等)

树莓派是一种微型电脑,主要运行Linux操作系统,连上屏幕、鼠标和键盘就是一个电脑了,可以进行复杂计算,例如图像处理等。有操作系统就意味着可以直接在系统上进行编程,而单片机需要在电脑上编译烧录。

缺点就是:相较于单片机价格很贵。工业控制上,进行大量计算时性能有所不足,直接在电脑上计算可能更好。更适合小型智能化设备。

总结:

1、51和stm8更适合低端市场,如遥控器、小家电、小玩具中。当然STC公司经过升级的stc51单片机也可以考虑使用在工业控制中。

2、Arduino所有硬件和软件全部免费,有丰富的开源项目,且对开发者要求不高,可以快速上手。但由于国内专业人士的偏见,Arduino目前不适合商用(个人看法)。

3、esp32性能极强,性价比很高,自带蓝牙和WiFi,而且各种接口和外设都十分丰富,但是数量上却力不从心。如果需要控制的东西较少,在esp32的IO口允许范围内,绝对是最好的选择。也可以运行实时操作系统。

4、stm32各种接口和外设都十分全面,基本囊括了目前所有需要,且定时器、中断、PWM通道等数量极多,可用于大量开关和传感器的监测,以及大量控制电机等。而且可以运行实时操作系统,工控领域也应用广泛。而且stm32型号很多,可根据需要选择适合的型号,各种型号程序之间的移植也不复杂,方便程序的借鉴使用。相比于esp32,stm32只有单核心,且即使是stm32f4系列主频也只有168MHz,性能上不如esp32,如果需要WiFi时另外需要购买模块。

另外,工业控制中,当工况恶劣时,PLC控制更具有优势。当然除了这六种还有其他类型单片机,由于尚未接触,故不做论述。

**51 stm8 arduino esp8266 esp32 stm32 树莓派 等单片机使用对比**相关推荐

  1. Arduino ESP8266/ESP32读取和改写MAC

    Arduino ESP8266/ESP32读取和改写MAC ESP8266/ESP32读取MAC示例代码 /*读取MAC*/ #ifdef ESP32#include <WiFi.h> # ...

  2. Arduino、arm、树莓派、单片机四者有什么不同?【转载】

    这个问题嘛,还是先详细介绍一下这四种东西,你就应该知道他们有什么不同的了. 1.Arduino:一款开源电子原型平台.包括了硬件和软件,硬件就是各种型号的Arduino板子,软件就是Arduino I ...

  3. 正在做 ESP32 , STM32 , 树莓派 RaspberryPi 的创客工具

    先随便写写一些思路, 以后再整理. 这段时间笔者做了一些硬件开发, 领悟了一些事情. 1 - 在常规创客的角度上, 硬件开发所需的知识面比较广, 非常广, 但不算太深. 2 - 发现硬件开发由于其特殊 ...

  4. 第一篇随笔, 正在做 ESP32 , STM32 , 树莓派 RaspberryPi 的创客工具

    先随便写写一些思路, 以后再整理. 这段时间笔者做了一些硬件开发, 领悟了一些事情. 1 - 在常规创客的角度上, 硬件开发所需的知识面比较广, 非常广, 但不算太深. 2 - 发现硬件开发由于其特殊 ...

  5. scratch3.0定制 支持microbit arduino ESP8266 ESP32

    有实时模式,离线模式,自动更新,自定义扩展 软件截图: 主界面 代码转换界面 自动更新窗口 主控板选择 添加了国产芯片LGT8F328P,添加了本地角色库预览服务器和自动更新服务器,服务器可以根据需要 ...

  6. Arduino、arm、树莓派、单片机四者有什么不同?

    在知乎上看到有神人将此问题类比于"凯美瑞,V型发动机,帕萨特,小轿车四者有什么不同?"也是很有意思了. 首先 1.Arduino并不是一种芯片,而是一款便捷灵活.方便上手的开源电子 ...

  7. 安装 Arduino IDE 中STM32 软件包,ESP8266软件包

    简 介: 搜集了更多的基于Arduino生态环境的安装和使用方法. 关键词: Arduino,STM32,ESP8266 §01 安装STM32在Arduino IDE软件包 1.参考文献1 参照推文 ...

  8. arduino安装+esp32+esp8266安装

    目录 1:arduino安装 2:esp32Arduino手动添加ESP32相关开发板(图文并茂)_我来过了.的博客-CSDN博客_arduino怎么添加开发板 3:esp8266安装 网址填写: 问 ...

  9. 用于Arduino、esp32或esp8266的Ebyte LoRa E32(SX1278)设备:库 - 第二部分

    原作者:renzo mischianti - 2019年10月21日出版 - 2021年6月21日更新 我创建了一个库来管理基于Semtech系列的LoRa设备的EBYTE E32,该设备非常强大,简 ...

  10. 【丁丁历险记】Arduino配置esp8266/esp32开发环境

    [丁丁历险记]全篇索引​​​​​​ ESP8266 是一款由乐鑫 Espressif 公司制作的低成本的 Wi-Fi 芯片,具有完整的 TCP / IP 协议栈和微控制器功能.它专为移动设备.可穿戴电 ...

最新文章

  1. 2W 字详解 Redis 6.0 集群环境搭建实践
  2. 获取错误:当试图让pgsql使用rails时,用户“postgres”的对等身份验证失败
  3. STM32L152RC 在keil4中使用printf()和scanf() 函数
  4. EBS默认的登录账户和密码
  5. python有哪些插件_Python和它高大上的插件们
  6. C# — Windows服务安装后自动停止问题
  7. RIP引入外部路由配置示例
  8. wait notify的错误理解
  9. 纯 CSS 解决自定义 CheckBox 背景颜色问题
  10. 模块间相互调用需要注意的问题
  11. 【读书笔记《Android游戏编程之从零开始》】11.游戏开发基础(SurfaceView 游戏框架、View 和 SurfaceView 的区别)
  12. Java 点餐小程序源码带管理后台(免费分享)
  13. 分享电脑中截图的五种方法(包括截长图)
  14. 安装cude11.2.exe报错:Could not create file “C: )Users\xxx\ AppData \Local\ Temp \CUDA\GFExperience
  15. Qt 5.12--color
  16. 未来发展人工智能的意义是什么?
  17. PTA-L1-034微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人点赞的
  18. WebRTC RTCP PS Feedback
  19. addSuppressed异常抑制
  20. 洛谷 P2862 [USACO06JAN]把牛Corral the Cows 解题报告

热门文章

  1. EasyWeChat生成小程序码
  2. 百度搜索框搜索时显示或者隐藏历史搜索记录
  3. ELF格式解读 Dynamic节
  4. Mybatis plus 修改密码
  5. 固态硬盘是什么接口_M.2 SSD固态硬盘的规格、接口、总线详解
  6. java项目-第150期ssm网络视频播放器-java毕业设计_计算机毕业设计
  7. 基于ZXing实现个性彩色好看的二维码
  8. android vcard解析代码,Android从Intent获取vCard数据
  9. MySQL自定义函数
  10. 来电转接点击选择联系人按钮-没有出现联系人