单片机STM32、GD32、ESP32开发板的差异和应用场景

STM32:意法半导体在 2007 年 6 月 11 日发布的产品,32位单片机。

GD32:兆易创新 2013 年发布的产品,在芯片开发、配置、命名上基本模仿 STM32,甚至 GPIO 和 STM32 都是 pin to pin 的,封装不改焊上去直接用。有时候 STM32 的源码不修改,重新编译烧写到 GD32 上就可以跑。当然也有很多不同,比如串口驱动、USB 、库文件等。

ESP32:乐鑫公司 2017 年开发的产品,和 STM32、GD32 不同,ESP32 主要面向物联网领域,支持功能很多,但引出 GPIO pin 脚很少,因此大多数 GPIO 都有很多复用功能。出厂就集成蓝牙、WiFi 等物联网必备功能,板子也很小,适合物联网。

GD32 和 STM32 的区别

GD32 是国产单片机,据说开发人员来自ST公司,GD32 也是以 STM32 作为模板做出来的。所以 GD32 和 STM32 有很多地方都是一样的,不过 GD32 毕竟是不同的产品,不可能所有东西都沿用 STM32,有些自主开发的东西还是有区别的。不同的地方如下:

1、内核

GD32 采用二代的 M3 内核,STM32 主要采用一代 M3 内核,下图是 ARM 公司的 M3 内核勘误表,GD 使用的内核只有 752419 这一个 BUG。

2、主频

使用HSE(高速外部时钟):GD32的主频最大108M,STM32的主频最大72M

使用HSI(高速内部时钟):GD32的主频最大108M,STM32的主频最大64M

主频大意味着单片机代码运行的速度会更快,项目中如果需要进行刷屏,开方运算,电机控制等操作,GD 是一个不错的选择。

3、供电

外部供电:GD32 外部供电范围是 2.6~3.6V,STM32 外部供电范围是2.0~ 3.6V或1.65~ 3.6V。GD 的供电范围比 STM32 相对要窄一点。

内核电压:GD32 内核电压是 1.2V,STM32 内核电压是 1.8V。GD 的内核电压比 STM32 的内核电压要低,所以 GD 的芯片在运行的时候运行功耗更低。

4、Flash差异

GD32 的 Flash 是自主研发的,和 STM32 的不一样。

GD Flash 执行速度:GD32 Flash 中程序执行为 0 等待周期。

STM32 Flash 执行速度:ST 系统频率不访问 flash 等待时间关系:0 等待周期,当 0Flash 擦除时间:GD 擦除的时间要久一点,官方给出的数据是这样的:GD32F103/101 系列 Flash 128KB 及以下的型号, Page Erase 典型值 100ms, 实际测量 60ms 左右。对应的 ST 产品 Page Erase 典型值 20~40ms。

5、功耗

从下面的表可以看出 GD 的产品在相同主频情况下,GD 的运行功耗比 STM32小,但是在相同的设置下 GD 的停机模式、待机模式、睡眠模式比 STM32 还是要高的。

6、串口

GD 在连续发送数据的时候每两个字节之间会有一个 Bit 的 Idle,而 STM32 没有,如下图:

GD 的串口在发送的时候停止位只有 1/2 两种停止位模式。STM32 有 0.5/1/1.5/2 四种停止位模式。

GD 和 STM32 USART 的这两个差异对通信基本没有影响,只是 GD 的通信时间会加长一点。

7、ADC 差异

GD 的输入阻抗和采样时间的设置和 ST 有一定差异,相同配置 GD 采样的输入阻抗相对来说要小。具体情况见下表这是跑在 72M 的主频下,ADC 的采样时钟为 14M 的输入阻抗和采样周期的关系:

8、FSMC

STM32 只有 100Pin 以上的大容量(256K及以上)才有 FSMC,GD32 所有的 100Pin 或 100Pin 以上的都有 FSMC。

9、103 系列 RAM&FLASH 大小差别

GD103 系列和 ST103 系列的 ram 和 flash 对比如下图:

10、105&107系列STM32和GD的差别

GD的105/107的选择比ST的多很多,具体见下表:

11、抗干扰能力

GD 的抗干扰能力不如 STM32,还需要一定打磨。

ESP32 和 STM32

ESP32 是乐鑫公司推出的一款采用两个哈佛结构 Xtensa LX6 CPU 构成的拥有双核系统的芯片。所有的片上存储器、片外存储器以及外设都分布在两个 CPU 的数据总线和/或指令总线上。

相比于 STM32 的一个大家族,ESP32 虽然也代表一个系列,但目前来说,这个系列的成员还是比较少的,我们看下:

资源如下:

功能框图如下:

模块(非芯片)的引脚分布如下:

ESP32 这个模块的 IO 并不多,估计也就 30 个左右(芯片有34个,但是模块中外接 FLASH 用掉了一些)。但是你会发现它有几个特点:

1、集成了非常多的外设接口,SPI、IIC、IIS、AD、DA、PWM、IR、UART、CAN等等。IO 数量有限,所以基本上每个 IO 都有多个功能。

2、片内flash和ram很大,flash有448KB,ram有520KB。而模块上直接挂了一个4MB的flash。

3、速度快!虽然外接晶体的频率只有40MHZ,但通过内部主频可以支持80MHZ、160MHZ、240MHZ,运算能力高达600MIPS。

4、有wifi和蓝牙!当前两者不能同时使用。

STM32 和 ESP32 基本是有各自不同的定位。ESP32 偏向体积小巧、速度超快、功能强大,通过 wifi 接入网络,专门为物联网而生;而 STM32 偏向管脚丰富、功能全面,虽然没有 wifi 和蓝牙,速度也没有 ESP32 快,但是可以通过网口接入网络,可以控制更多的外设,为消费电子和工业控制而生。

总结

STM32 和 GD32 是同质化产品,区别一个是国外,一个是国产,最近流行国产化替代,所以 GD32 还是很有发展前景的。

根据不同项目的需求和特点,开发者可以选择最适合的开发板进行设计和开发。

STM32、GD32、ESP32开发板各自适合的应用场景如下:

STM32开发板

STM32开发板以其高性能、丰富的外设和低功耗特性,适用于多种应用场景:

  1. **工业自动化**:STM32可用于PLC控制系统和传感器数据采集,具有高性能处理速度和内存容量,以及内置的故障保护机制,适合处理复杂控制算法和提高系统可靠性。

  2. **医疗保健**:STM32单片机开发板被广泛用于医疗设备控制,如监护仪、输液泵和呼吸机,需要高安全性和可靠性。

  3. **智能家居**:STM32开发板可以用于智能家居系统,如温湿度采集、声音、光线等信号的采集和处理。

  4. **无线病房呼叫管理系统**:STM32F4为平台的监控终端以及无线传感网组成,用于病房呼叫、服务确认和评价等信息的传递。

GD32开发板

GD32开发板是国产的ARM Cortex-M3/M4微控制器,其应用场景与STM32类似,包括但不限于:

  1. **工业控制**:适用于需要高性能和高可靠性的工业控制应用。

  2. **消费电子**:因其低成本和高性能,适合用于消费电子产品的控制。

  3. **物联网终端**:GD32的低功耗特性使其适合作为物联网设备的控制核心。

ESP32开发板

ESP32开发板以其集成Wi-Fi和蓝牙功能的双核处理器而闻名,适合以下应用场景:

  1. **智能家居**:用于智能灯光控制、安防监控、智能家电控制等,实现远程控制和状态监测。

  2. **智能城市**:在智能交通、环境监测及公共安全等方面提升城市管理智能化和效率。

  3. **工业物联网**:用于工业自动化、远程监控以及数据采集,提高生产效率、降低运营成本。

  4. **医疗健康**:在远程医疗和健康监测领域提供便捷和个性化的医疗服务。

  5. **低功耗应用**:由于其低功耗特性,适合需要长时间运行、电池供电的应用。

  6. **物联网传感器网络**:适合用于智能手表、智能眼镜、健康监测设备等可穿戴设备,以及分布式传感器网络,实现实时数据采集和处理。

ESP32开发板在物联网项目中的应用案例非常丰富,从智能家居、环境监测到可穿戴设备,ESP32开发板都能提供强大的支持。以下是一些精选的应用案例:

  1. **智能手表(MutantW V2 - DIY ESP32-S3 智能手表)**:
  • 该项目使用ESP32-S3芯片,结合1.7英寸IPS液晶显示屏、按钮、3D打印外壳等组件,打造了一个DIY智能手表。手表可以通过ESP32-S3固件进行功能扩展,支持通过Arduino IDE刷新固件。
  1. **植物生长监测系统**:
  • 利用ESP32-S3开发板,结合土壤湿度传感器、光照传感器等,可以构建一个实时监测植物生长环境的系统,帮助优化植物生长条件。
  1. **实时安全摄像头**:
  • 使用DFRobot行空板和FireBeetle 2 ESP32S3微控制器,构建了一个实时安全摄像头系统。该系统能够执行图像分类和其他依赖于计算的任务,通过WiFi视频流和Python OpenCV库实现视频监控和处理。
  1. **智能充电桩应用**:
  • ESP32-C3开发板因其Wi-Fi和低功耗蓝牙模组,适用于智能充电桩的数据交互,实现控制、查询和支付等功能,与智能网联系统进行交互,提高充电桩的运行效率和用户体验。
  1. **环境监测系统**:
  • ESP32开发板可以用于建立环境监测系统,如空气质量传感器和气象站,监测和报告实时数据,如温度、湿度和空气质量。
  1. **智能家居自动化**:
  • ESP32可用于建立智能家居自动化系统,如智能恒温器、智能插头和智能照明,这些系统可以使用智能手机应用程序进行远程控制,响应来自传感器和其他设备的实时数据。
  1. **可穿戴技术**:
  • ESP32开发板可用于建立可穿戴技术,如健身追踪器和智能手表,监测和报告实时数据,如心率、所走的步数和睡眠模式。

更多的项目和应用案例:

STM32开发板项目案例

  1. **基于STM32多功能MP3设计**:该项目集成了音乐播放器、数码相框、电子书、计算器、万年历、照相机、非特定语音识别等功能。

  2. **基于STM32的MiNi简易示波器**:实现了简易示波器的功能,通过高速A/D转换器对模拟信号采样,并在彩屏上显示波形和参数。

  3. **基于STM32的心电采集系统**:以实时性强、价格便宜、操作简单为标准,设计了可穿戴心电采集系统。

  4. **STM32音乐频谱(32*64点阵)**:通过STM32F103C8T6主控芯片,实现了音乐频谱的显示,支持FFT运算和红外遥控器切换功能。

  5. **基于STM32的H型微型四轴飞行器**:集成了MPU6050传感器模块、NRF24L01无线通信模块,支持双摇杆遥控和体感遥控。

  6. **基于STM32示波器 DDS信号发生器**:采用STM32VET6作为主控制芯片,DDS芯片采用AD9708,支持手动按键、SD卡、USB接口等外部接口。

  7. **基于STM32多功能虚拟信号分析仪 示波器频谱仪**:下位机基于STM32设计,集成了示波器、逻辑分析仪、谱分析仪等功能。

GD32开发板项目案例

GD32开发板作为国产的ARM Cortex-M3/M4微控制器,其应用案例与STM32类似,适用于工业控制、消费电子、物联网终端等领域。具体的项目案例可以参考STM32的相关应用,因为GD32与STM32在硬件和软件上具有很高的兼容性。

ESP32开发板项目案例

  1. **计步器项目**:使用FireBeetle-ESP32物联网开发板,实时记录步数及卡路里消耗,数据可上传至手机软件端(Blynk)显示。

  2. **非接触式红外温度传感器项目**:用FireBeetle ESP32主板和MLX90614非接触式红外温度传感器,自制测温枪,可将测温数据上传到物联网或手机上。

  3. **基于Beetle ESP32 C3和Wear OS的智能手表控制智能家居**:通过智能手表控制家中的智能设备。

  4. **基于ESP-NOW协议和ESP32-C3的无线控制多个LED彩灯**:实现无线控制LED彩灯的效果。

  5. **MutantW V2 - DIY ESP32-S3智能手表**:围绕ESP32-S3 IC构建的开源DIY智能手表,配备1.7英寸IPS LCD显示屏、WiFi、蓝牙等功能。

  6. **使用ESP32-S3 DIY植物生长记录仪**:监控植物生长过程,同时跟踪温度、湿度、压力、环境光和紫外线水平等环境条件。

相关推荐
电子工程师UP学堂36 分钟前
电子应用设计方案-59:智能电动床系统方案设计
人工智能·单片机·嵌入式硬件·机器人·计算机外设
小A15936 分钟前
STM32完全学习——独立看门狗和窗口看门狗
stm32·单片机·学习
YHPsophie1 小时前
HT7183:16V, 4.5A的DC-DC升压转换器,常用在数码相机里
单片机·嵌入式硬件·ic·dc-dc·升压转换器
高工智能汽车2 小时前
洗牌!汽车MCU进入「大混战时代」,谁能够 “伺机突围”?
单片机·嵌入式硬件·汽车
嵌入式小强工作室4 小时前
stm32 iic电阻怎么选
stm32·单片机·嵌入式硬件
jinkang_zhao4 小时前
STM32, GD32 cubemx CAN 低速率125kbps 报文丢失,解决了
stm32·单片机·嵌入式硬件
whaosoft-1435 小时前
51c嵌入式~合集3
嵌入式硬件
南城花随雪。5 小时前
单片机:实现蜂鸣器数码管的显示(附带源码)
单片机·嵌入式硬件
Be Legendary-CGK6 小时前
【硬件接口】I2C总线接口
单片机·嵌入式硬件·硬件工程
wait_for_STM326 小时前
在Proteus软件仿真STM32F103寄存器方式PID调速电机
stm32·嵌入式硬件·proteus·pid调速