MM32初識(兼容STM32)
資源與開發環境
- keil 5.0
- MM32 miniboard
提要
- stm32入門(MM32兼容)
- 點亮LED思路簡介
- GPIO配置
- stm32寄存器理解與操作步驟
分層抽象思想
對於數字邏輯硬件,能識別的只有二進制(0/1),我們的操作最終都會變成0/1的操作,只是我們聰明的計算機工程師在中間加入許多抽象層,使開發接見我們的自然語言,解放我們的記憶,使用編譯器將轉變ASCII為硬件識別的二進制代碼。
下面是自己理解的stm32的基本抽象層次:
地址
對一個外設的操作,直接可以映射到外設地址的操作,這樣做會使我們記憶一些苦澀的地址,更麻煩的是,書寫的代碼只能用與這款芯片,只要芯片的地址有任何改動,你都得仔細檢查你的代碼是否映射正確,沒有移植性可言。
寄存器,結構體
使用C語言的結構體,將地址映射到一個有意義的名字上,然后再將其封裝成結構體,這樣我們對照着開發手冊即可進行開發。但芯片升級了,我們只要修改最底層的地址與寄存器名字的映射文件即可進行一定的移植。然而,寄存器的可讀性還是很差,每次閱讀,或許你需要對照着開發手冊的寄存器描述閱讀,但也可以對外設的原理理解得更加清楚。
庫函數
在寄存器的基礎上,將外設的一些操作封裝成函數,但需要配置外設時,可以直接調用該函數即可。應用方便,可讀性強。
編程學習思路(點亮LED)(使用寄存器編程)
LED點亮思路
1、先查看原理圖上LED的連接情況
由原理圖可以知道LED燈與GPIO的鏈接情況。
LED點亮思路:配置GPIO輸出高低電平控制LED的亮滅。
2、GPIO配置
這里點亮LED需要配置PA15/PB3/PB4/PB5四個引腳的輸出
打開用戶手冊(UM_MM32_MiniBoard_Ver1.0)的GPIO一章進行GPIO輸出的配置
GPIO配置思路
- 1、開啟GPIO時鍾(復位和時鍾控制RCC一章)
- 2、GPIO輸出模式配置,GPIOx_CRL/GPIOx_CRH寄存器配置成推挽輸出模式
- 3、GPIO輸出信號配置,GPIOx_ODR中配置輸出高低電平
程序下載
使用keil編譯之后下載到MM32的miniboard板上,按下復位鍵后即可看到LED等亮起。
參考資料
[1]. MM32 miniboard資料