iT邦幫忙

2021 iThome 鐵人賽

DAY 1
1
Arm Platforms

STM32 基礎入門教學系列 第 1

【Day1】: STM32前言

教學宗旨

這個教學是for第一次接觸STM32的人,對於已經能夠熟練使用STM32的大大可能幫助不大。
在這30天當中會讓你深刻的體會STM32的美好,像使用Arduino般輕鬆自在。而為了深刻的體會STM32,教學當中會穿插著單晶片底層的概念,在提到的時候會再次提醒這個部分是較底層的內容,若只是想要會使用的話可以暫時跳過。

這份教學的先備知識

  1. Arduino基礎
    Arduino可以說是踏入Maker這個領域的第一道門,但這道門幾乎沒有門檻,網路上相比STM32而言,擁有更大量的教學資源,學習來說相當的簡單,花個幾天就可以熟悉各項功能。不過我相信,會要學習STM32的人,一定都有碰過Arduino吧?
  2. 基礎C/C++語言
    如果不會基本的C語言,那你大概離STM32還有一段距離...不好意思先請回了
  3. 理解C語言指標(Pointer)的使用
    STM32支援的語言為C/C++,C語言最大的好處在於速度快且擁有直接操縱記憶體的權力(Pointer 指標)。而英國數學家艾倫·圖靈於1936年提出一種將人的計算行為抽象化的數學邏輯機—圖靈機(Turing machine),不外乎就是對記憶體進行取值(read)、賦值(write)等操作。因此學會指標可以使你更深刻的體會STM32的底層運行模式。
  4. 物件導向程式設計能力(C++)
    我們常說的C++是物件導向其實並不是很正確,物件導向其實是一種程式設計的方法,是抽象的。而我們常說Python、C++、Java是物件導向的語言其實只是這些語言比較方便你用物件導向的方式來設計。因此倘若你寫C++但你不會用類別(class)以及物件導向的三大特性:封裝(Encapsulation)、繼承(Inheritance)、多形(Polymorphism),你的程式依然稱不上是具有物件導向的特性的。

這29天會讓你習得的能力(今天已經是第一天了!)

  • STM32基礎
    這九天會讓你能夠簡單的操縱STM32最最最基本的功能,並且在day9~day11對於底層的暫存器操縱有深刻的了解,如果只是要會使用而不想知道太詳細的話也可以跳過這個部分啦~
    【Day2】:初識STM32
    【Day3】:STM32CubeIDE安裝以及環境設定
    【Day4】:來使用STM32CubeIDE吧!
    【Day5】:GPIO輸入輸出(上)
    【Day6】:GPIO輸入輸出(中)
    【Day7】:GPIO輸入輸出(下)
    【Day8】:ADC電壓採集
    【Day9】:STM32記憶體架構
    【Day10】:庫函數包裝—對於底層暫存器的操縱(上)
    【Day11】:庫函數包裝—對於底層暫存器的操縱(下)

  • STM32進階功能
    STM32的TIMER功能可以讓你明白STM32到底比Arduino強在哪裡,為什麼要拋棄簡單又易學的Arduino而去使用這麼複雜的STM32,在這13天當中會帶你使用TIM—基本計時器以及窺探其底層的硬體實現,最後則會來使用STM32的TIM—高級計時器
    【Day12】:NVIC中斷概要
    【Day13】:EXTI外部中斷/事件控制器
    【Day14】:STM32輾壓Arduino的功能—TIM(上)
    【Day15】:STM32輾壓Arduino的功能—TIM(下)
    【Day16】:Counter的硬體實現
    【Day17】:STM32系統時鐘配置(上)
    【Day18】:STM32系統時鐘配置(下)
    【Day19】:TIM搭配中斷功能
    【Day20】:PWM輸出-模擬類比訊號
    【Day21】:客製化的PWM輸出
    【Day22】:旋轉編碼器—Encoder
    【Day23】:TIM的強大功能—Encoder mode
    【Day24】:TIM-輸入捕獲

  • 實際應用於機器人的各種控制及程式設計技巧
    在這幾章的教學當中會先簡單介紹物件導向的程式設計概念,並且透過STM32實際應用於機器人的馬達控制
    【Day25】:從struct進化成class的物件導向技巧
    【Day26】:STM32實際應用1—motor.rotate()物件導向的優點
    【Day27】:STM32實際應用2—馬達精準控速(PID初淺教學(上))
    【Day28】:STM32實際應用2—馬達精準控速(PID初淺教學(下))
    【Day29】:STM32實際應用3—DMA讓你的步進馬達不再失步
    【Day30】:STM32系列最終章!

雖然我已經大致上把這30天的內容列出來,但計畫趕不上變化嘛,所以還是有可能會有些微的更動囉。


下一篇
【Day2】:初識STM32
系列文
STM32 基礎入門教學30

1 則留言

0
window911
iT邦新手 5 級 ‧ 2021-10-12 15:33:42

您好,謝謝分享STM32教學,最近也在摸STM32,希望能繼續更新下去。

謝謝你的關注,有問題可以討論!

我要留言

立即登入留言