【Day2】:初识STM32

STM32基本简介

STM32是意法半导体的产品,意法半导体(ST)集团於1988年6月成立。1998年5月,将公司名称改为意法半导体有限公司,是世界最大的半导体公司之一。STM32系列是专为需要高效能、低功耗的嵌入式系统所专门设计的ARM Cortex核心。

STM32与Arduino的差异?

STM32与Arduino都是属於单晶片,单晶片根据维基百科的定义
单晶片,全称单晶片微电脑,又称微控制器单元(microcontroller unit),是把中央处理器、储存器、定时/计数器(timer/counter)、各种输入输出介面等都整合在一块积体电路晶片上的微型计算机。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬体)和节约成本。它的最大优点是体积小,可放在仪表内部,但储存量小,输入输出介面简单,功能较低。由於单晶片微电脑常用於当控制器故又名single chip microcontroller。台湾称为「单晶片」;中国则主要采用「单片机」,英文缩写为MCU。

两者概念上没有什麽差别,那为什麽我们要学习STM32呢?
Ans:因为效能以及STM32拥有更多的功能举例来说:STM32的TIMER有encoder mode,可以将方波直接做处理,对於马达控制非常方便。不过严格来说Arduino是一个开源的电子开发原型平台。其包含硬体开发版和软件IDE和各种开发生态。所以Arduino是一个集合了硬件和软件的综合体。
,而他上面的微控器是ATmega328p,但我们姑且将Arduino与STM32当作是相同的东西。

哈哈~那没有差异为什麽我们还要学习STM32呢?其实还是有差的,那就是这两者的定位不同,Arduino对硬体底层做了大量的封装,适合给初学者使用。例如机器人的开发测试:你要测试气压感测器的输出值时,使用Arduino 的analogRead(),会比你用STM32的ADC功能来的快多了;不过当需求更大时,包括对计算速度以及硬体操纵的要求更严苛的时候,STM32就会比Arduino更适合你。
在这里我们不对这两者所使用的单晶片进行硬体上的比较,只简单的举几个例子来让你了解功能上的差异。

  1. Arduino的analogWrite所产生的PWM讯号频率为490.196Hz,无法更动(当然你如果去操纵暂存器还是可以改变频率的,但显然这已经违背了Arduino做程序码包装的意义),而使用STM32可以很轻易的更动PWM的频率。
  2. Arduino的程序码由於是设计给初学单晶片的使用者,因此程序码的可读性非常高(包装的非常好),语法也非常的简单,不过某种程度上也可以说很「呆」。

STM32 命名方法

这个教学当中使用的是STM32F429ZI这个开发版
https://ithelp.ithome.com.tw/upload/images/20210905/20141525SMlpiW4nqV.jpg
Z表示的是144个Pin,其他还有像I、C、R等字母,详见下表

代码 Pin数量
C 48
R 64
V 100
Z 144
I 176
B 208
N 216

I指的是快闪记忆体(Flash memory)大小

代码 Code Size(KB) 代码 Code Size(KB)
0 1 A 92
1 2 B 128
2 4 Z 192
3 8 C 256
4 16 D 384
5 24 E 512
6 32 F 768
7 48 G 1024
8 64 H 1536
9 72 I 2048

以我们以後会使用的F429ZI来说,它的快闪记忆体是STM32系列当中最大的,大小为2MB。

更详细的命名方式
https://ithelp.ithome.com.tw/upload/images/20210905/20141525RDEyIH9lnw.jpg

小结

今天我们简单比较了一下Arduino以及STM32,并对STM32有了初步的认识,明天我们就要来准备实际使用这块开发版啦!

资料来源

  1. http://m.elecfans.com/article/1208981.html

<<:  Day 16-infrastructure 也可以 for each 之三: Count meta-argument

>>:  [Day01] 前言:常见的前端实战技能有哪些?

DAY01前言:有关30天挑战

一、心得分享: 本人目前持续学习数据分析和AI当中,包括常见的机器学习和深度学习,在学习过程中,才知...

Web应用扫描工具-Arachni小蜘蛛(下)

我们今天使用Default模板来开始测试 输入要扫描的目标URL并选择Default模板 也可以在此...

【从零开始的Swift开发心路历程-Day16】安装RealmSwift资料库Part2(完)

昨天我们安装完CocoaPods後,今天就来安装RealmSwift吧! 要安装RealmSwift...

Day 23 - Android 程序实作:简单的使用者进入

Day 23 - Android 程序实作:简单的使用者进入 昨天我讲了我对Android的兴趣,今...

Day 04 - 导入 TypeScript

如果有错误,欢迎留言指教~ Q_Q 为什麽需要 TypeScript? 是一种强型别的语言,可以主...