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