日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32F4 HAL库开发 -- STM32CubeMX

發(fā)布時間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32F4 HAL库开发 -- STM32CubeMX 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。