大二下學期開了一門單片機的課STM32,之前瞭解過51單片機,對STM32的瞭解僅限於知道有點難…
不過實際的去學去做發現,簡單應用還是可以的,深入開發還是需要費點時間。
下面會對我學到的stm32知識進行總結。(參考了老師的ppt)
下面所使用到的安裝包我都放到了個人網盤分享出來了,下載鏈接
(安裝cubemx需要提前裝java jdlk,其他安裝都是傻瓜式安裝)
STM32
可以稱爲微控制器,也可以稱爲單片機。
可以理解成在一片集成芯片上集成計算機的組成部分
與計算機的區別 :本質上就是計算機,更加偏向於控制系統的應用,是計算機發展中與通用處理器同樣重要的另一個分支。
有輸入輸出設備和處理單元
我們學習使用的單片機
應用領域還是很廣的 :
比如 家電玩具: 移動設備,平板電腦,網絡設備,各種玩具等
物聯網 :共享單車,智能家居設備,可穿戴設備等等
STM32CubeMx
STM32CubeMX是ST意法半導體的主動原創工具,允許用戶使用圖形化嚮導生成C 初始化代碼,可以大大減輕開發工作,時間和費用。
(如果偏應用爲主的建議直接使用cubemx開發,如果要深入學習32,建議使用之前經典的標準外設庫來開發 先學習標準外設庫,但有必要抽時間瞭解STM32CubeMX)
STM32CubeMX集成了一個全面的軟件平臺,支持STM32每一個系列的MCU開發。
創建新的工程可以對MCU型號直接進行選擇,還可以指定系列 封裝 外設等條件
安裝元器件包
根據板子的型號進行安裝,如果安裝不正確或者沒安裝 就無法正常使用
可以根據型號選擇在CubeMx裏面安裝(慢),或者是在網上下載好直接導入安裝。
使用CubeMx配置模塊
選擇好對應的型號後 會出來圖像化配置的界面
裏面可以對 時鐘,AD,GPIO口,串口,中斷,定時器等進行直接配置 。
對GPIO配置(“通用可編程I/O端口)
對時鐘進行配置
對AD和定時器進行配置
I2C 串口通信配置
根據實際場景需要配置相關模塊,不同模塊配置方式不同,不同場景下參數調整也不同。
生成代碼
在生成代碼之前需要將保存環境,以及接下來使用的編譯軟件選擇好。否則生成代碼會進度條會卡死。
填寫項目名稱(Project Name),所在位置(Project Location),打開軟件(IDE)一般使用的是Keil5 選擇 MDK-ARM v5.
這些都配置好之後,點擊右上角 GENERSTE CODE 就會進行合成代碼
然後會有一個進度條,跑完之後使用CubeMx的任務就完成了。
點擊Open Project 的話就會使用之前配置的IDE進行打開該項目。
在項目文件夾中 直接點開ioc後綴的圖標可以直接進行打開項目並修改
Keil5
使用cubemx只是輔助更快捷的配置一些模塊,真正的應用還是需要在合成代碼基礎上進行修改代碼,而修改代碼使用的編譯器就是下面提到的keil5.
Keil C51是美國Keil軟件公司(現已被ARM公司收購)出品的支持8051系列單片機架構的一款IDE(集成開發環境)。
支持的芯片有幾百種,不僅支持51,也支持32.
當時記得有人說keil5也需要配置芯片包,不過我沒配置也能使用。如果需要配置可以到官網下載,安裝。鏈接地址
使用keil5打開cubemx合成的代碼
可以在合成之後直接打開,也可以到項目文件夾下MDK-ARM文件夾下進行打開,雙擊uvprojx文件就可以打開這個項目
打開之後,一般是對main.c 裏面的代碼進行操作,當然也會用到其他代碼。
根據項目的需要對代碼進行添加,修改。然後就可以進行保存,調試,生成等操作
如果代碼沒什麼問題的話就能夠調試成功,並生成一個後綴爲hex的文件
這個文件是要燒寫到板子裏面去的。
燒寫工具
在電腦端寫好的代碼還是需要傳到單片機上使用,講寫好的代碼生成一個hex文件,通過燒寫工具,對hex文件進行傳輸到單片機上。
我這裏使用的是FlyMcu工具。(這種工具網上有很多)
需要配置的地方
下面那欄選擇 DTR的低電平復位,RTS高電平進BootLoader (爲什麼選這個我不是很懂)
不然燒寫會不成功
上面 開始編程 旁邊,也可以配置一下 選擇校驗和編程後執行。(根據需要想應調整)
燒寫程序
先選擇好需要燒寫的hex文件 可以文件夾打開或直接輸入絕對路徑
然後搜索串口
選擇上傳單片機所在的串口號
選擇波特率 (一般是115200)
點擊開始編程。
燒寫結果
燒寫成功會顯示 一切正常
燒寫失敗也會有相應提示,
可以先清除芯片試試,或者按復位鍵 開關鍵調試
如果都不行,就要檢查hex文件,燒寫工具配置等等。
(以上使用的所有工具,安裝包下載鏈接都在最上面網盤鏈接)
更多學習教程
- STM32 cubemx keil5搭建學習環境
- 使用STM32 cubemx keil5實現led燈與數碼管控制
- 基於STM32 CubeMx keil5實現鍵盤的應用
- 基於STM32 CubeMx keil5實現串口通信 I2C與GPIO綜合應用
- 基於STM32 CubeMx keil5實現AD轉換獲取溫度
- 基於STM32 CubeMx keil5 學習使用I2C
- 基於STM32 CubeMx keil5 學習使用串口通信
- 基於STM32 CubeMx keil5應用定時器
- 基於STM32 cubemx keil5學習使用中斷
- 基於STM32 cubemx keil5綜合應用實現溫度控制系統