STM32F4 HAL库开发 -- STM32CubeMX
一、STM32CubeMX 簡介
STM32CubeMX 是 ST 意法半導體近幾年來大力推薦的 STM32 芯片圖形化配置工具, 允許用戶使用圖形化向導生成 C 初始化代碼,可以大大減輕開發工作,時間和費用。 STM32CubeMX幾乎覆蓋了 STM32 全系列芯片。它具有如下特性:
① 直觀的選擇 MCU 型號,可指定系列、封裝、外設數量等條件
② 微控制器圖形化配置
③ 自動處理引腳沖突
④ 動態設置時鐘樹,生成系統時鐘配置代碼
⑤ 可以動態設置外圍和中間件模式和初始化
⑥ 功耗預測
⑦ C 代碼工程生成器覆蓋了 STM32 微控制器初始化編譯軟件,如 IAR, KEIL, GCC。
⑧ 可以獨立使用或者作為 Eclipse 插件使用
對于 STM32CubeMX 和 STM32Cube 的關系這里我們還需要特別說明一下, STM32Cube包含 STM32CubeMX 圖形工具和 STM32Cube 庫兩個部分,使用 STM32CubeMX 配置生成的代碼,是基于 STM32Cube 庫的。也就是說,我們使用 STM32CubeMX 配置出來的初始化代碼,和 STM32Cube 庫兼容,例如硬件抽象層代碼就是使用的 STM32 的 HAL 庫。不同的 STM32 系列芯片,會有不同的 STM32Cube 庫支持,而 STM32CubeMX 圖形工具只有一種。所以我們配置不同的 STM32 系列芯片,選擇不同的 STM32Cube 庫即可。
stm32cubemx用戶手冊中文版下載:
https://www.st.com/zh/development-tools/stm32cubemx.html#
二、STM32CubeMX 運行環境搭建
STM32CubeMX 運行環境搭建包含兩個部分。首先是 Java 運行環境安裝,其次是
STM32CubeMX 軟件安裝。 對于 Java 運行環境,大家可以到 Java 官網 www.java.com 下載最新的 Java 軟件。這里大家需要注意, STM32CubeMX 的 Java 運行環境版本必須是 V1.7 及以上,如果你的電腦安裝過 V1.7 以下版本,請先刪掉后重新安裝最新版本。
安裝完 Java 運行環境之后, 為了檢測是否正常安裝,我們可以打開 Windows 的命令輸入框,輸入: java -version 命令,如果顯示 Java 版本信息,則安裝成功。
按照提示安裝STM32CubeMX,安裝完成后打開軟件,界面如下圖:
在線安裝HAL庫:
打開安裝好的 STM32CubeMX 軟件 點上面的Help -> Manage embedded software packages
會跳出來一個選擇型號界面 勾選上你要安裝的HAL庫, 點擊“Install Now” 直到安裝成功。
三、使用 STM32CubeMX 工具配置工程模板
大多數情況下,我們都只使用STM32CubeMX來生成工程的時鐘系統初始化代碼以及外設的初始化代碼,因為用戶控制邏輯代碼是無法在STM32CubeMX中完成的,需要用戶自己根據需求來實現。使用STM32CubeMX配置工程的一般步驟是:
1)工程初步建立和保存
2)RCC設置
3)時鐘系統(時鐘樹)配置
4)GPIO功能引腳設置
5)生成工程源碼
6)編寫用戶代碼
接下來我們將按照上面6個步驟,依次教大家使用STM32CubeMX工具生成一個完整的工程。
1、工程初步建立和保存
工程建立的方法有兩種,第一種方法是打開STM32CubeMX之后再主界面點擊 New Project 按鈕,第二種方法是在菜單欄依次點擊 File->New Project。
點擊新建工程按鈕之后,會彈出MCU選擇窗口。我們依次在選項卡 Series, Lines 和 Package之下選擇與我們使用的芯片 STM32F407ZGT6 對應的參數, 然后選擇對應的芯片型號, 最后點擊Start Project按鈕。
進入Pinout選項卡,這個時候界面會展示芯片完整引腳圖。
在引腳圖,我們可以對引腳功能進行配置。圖中黃色的引腳主要是一些電源和GND引腳。如果某個引腳被使用,那么會顯示為綠色。
外設和中間件樹面板中使用的圖標和顏色方案:
2、RCC設置
對于STM32芯片而言,RCC配置的重要性不言而喻。在STM32CubeMX中,RCC相關設置卻非常簡單,因為它把時鐘系統獨立出來設置。在操作界面,搜搜RCC,點擊進入RCC配置欄。
設置:
設置選項 High Speed Clock( HSE )的值為Crystal/Ceramic Resonator(使用晶振/陶瓷振蕩器)
3、時鐘系統(時鐘樹)配置
在使用STM32CubeMX配置時鐘樹之前,大家需要充分理解STM32時鐘系統。
Clock Configuration 選項卡即可進入時鐘系統配置欄。
進入Clock Configuration配置欄之后可以看到,界面展現一個完整的STM32F407時鐘系統框圖。從這個時鐘配置圖可以看出,配置的主要是外部晶振大小,分頻系數,倍頻系數以及選擇器。在我們配置的工程中,時鐘值會動態更新,如果某個時鐘值在配置過程中超過允許值,那么相應的選項框會紅色提示。
我們把系統時鐘配置分為6個步驟,分別用①~⑥標號表示,詳細過程為:
① 時鐘源參數設置: HSE 或者 HSI 配置。這里我們選擇 HSE 為時鐘源,所以我們之前必須在 RCC 配置中我們開啟 HSE。
② 時鐘源選擇: HSE 還是 HSI。這里我們配置選擇器選擇 HSE 即可。
③ PLL 分頻系數 M 配置。分頻系數 M 我們設置為 25。
④ 主 PLL 倍頻系數 N 配置。倍頻系數 N 我們設置為 336。
⑤ 主 PLL 分頻系數 P 配置。分頻系數 P 我們配置為 2。
⑥ 系統時鐘時鐘源選擇: PLL,HSI 還是 HSE。 這里毫無疑問,我們選擇 PLL,選擇器選擇PLLCLK 即可。
經過上面6個步驟,就會生成標準的180MHz系統時鐘。接下來我們只需要配置AHB,APB1,APB2和Systick的分頻系數,就可以完全實現函數Stm_Clock_Init配置的時鐘系統。
AHB, APB1 和 APB2 總線時鐘以及 Systick 時鐘的最終來源都是系統時鐘 SYSCLK。其中AHB 總線時鐘 HCLK 是由 SYSCLK 經過 AHB 預分頻器之后的來,如果我們要設置 HCLK 為180MHz,那么我們只需要配置圖中標號⑦的地方為 1 即可。得到 HCLK 之后, 接下來我們將在圖標號⑧~⑩處同樣的方法依次配置 Systick, APB 以及 APB2 分頻系數分別為 1, 4 和 2 即可 。 配 置 完 成 之 后 , 那 么 HCLK=168MHZ , Systick 時 鐘 為 168/1MHz=168MHz ,PCLK1=168MHz/4=42MHz, PCLK2=168MHz/2=84MHz。
4、GPIO功能引腳設置
可以在搜索欄輸入要搜索的引腳,在引腳圖上會顯示該引腳的位置。
引腳圖中點擊PC8,會出現該IO口的功能選項。
GPIO output level: 引腳電平設置 高/低
GPIO mode: GPIO模式 推挽輸出/開漏輸出
GPIO Pull-up/Pull-down: 上拉下拉電阻 上拉電阻/下拉電阻/無上拉或下拉
Maxinum output speed: 引腳速度設置 低速/中速/高速
User Label: 用戶標簽 給引腳設置名稱 如LED0
5、UART設置
點擊Mode選擇Asynchronous(異步)
設置波特率為115200 Bits/s。傳輸數據長度為8 Bit。奇偶檢驗無,停止位1 接收和發送都使能
DMA Settings,點擊Add,選擇UART5_RX,UART5_TX; Priority 優先級選擇 Very High 非常高。
設置中斷 UART5 global interrupt 在Enabled 列打對勾。
6、設置定時器
Activated 激活
7、看門狗設置
IWDG時鐘預分頻系數 64分頻
計數器重裝載值 4095 RLR
超出(溢出)時間計算:
Tout=((64×2^PRER) ×RLR)/LSI時鐘頻率
8、生成工程源碼
然后點擊GENERATE CODE 創建工程
總結
以上是生活随笔為你收集整理的STM32F4 HAL库开发 -- STM32CubeMX的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年中国药店创新趋势报告
- 下一篇: 2021餐饮外卖商户研究报告