iT邦幫忙

2021 iThome 鐵人賽

DAY 2
1
Arm Platforms

STM32 基礎入門教學系列 第 2

【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

上一篇
【Day1】: STM32前言
下一篇
【Day3】:STM32CubeIDE安裝以及環境設定
系列文
STM32 基礎入門教學30

尚未有邦友留言

立即登入留言