STM32CubeMx 針對407 discovery點(diǎn)亮LED燈
STM32Cube是一個(gè)全面的軟件平臺(tái),包括了ST產(chǎn)品的每個(gè)系列。平臺(tái)包括了STM32Cube硬件抽象層(一個(gè)STM32抽象層嵌入式軟件,確保在STM32系列最大化的便攜性)和一套的中間件組件(RTOS, USB, FatFs, TCP/IP, Graphics,等等).
直觀的STM32微控制器的選擇和時(shí)鐘樹配置
微控制器圖形化配置外圍設(shè)備和中間件的功能模式和初始化參數(shù)
C代碼生成項(xiàng)目覆蓋STM32微控制器的初始化符合IAR?,Keil的?和GCC編譯器。
對于新的產(chǎn)品設(shè)計(jì),我們強(qiáng)烈推薦使用STM32Cube來加速你的開發(fā)過程,并為以后的產(chǎn)品平臺(tái)移植打下良好的基礎(chǔ)。1.新建工程
打開STM32cubeMX軟件,點(diǎn)擊New Project。選擇對應(yīng)開板MCU(STM32F103ZET6)。
選擇工程后進(jìn)入工程界面,如下圖所示。
2.配置外設(shè)。
RCC設(shè)置,選擇HSE(外部高速時(shí)鐘)為Crystal/Ceramic Resonator(晶振/陶瓷諧振器)
GPIO口功能選擇,PF6,PF7,PF8,PF9為LED1-LED4.找到對應(yīng)管腳設(shè)置為GPIO_Output模式。(黃色引腳為該功能的GPIO已被用作其他功能,可以忽略。綠色表示管腳已使用)
3.時(shí)鐘配置
時(shí)鐘配置采用圖形配置,直觀簡單。各個(gè)外設(shè)時(shí)鐘一目了然。STM32最高時(shí)鐘為72M,此處只有在HCLK處輸入72,軟件即可自動(dòng)配置。(RCC選擇外部高速時(shí)鐘)。
4.功能外設(shè)配置
在配置框我們可以看到有幾個(gè)區(qū)域,分別對應(yīng)的功能設(shè)置如下
Multimedia(多媒體):音頻視頻、LCD
Control(控制):定時(shí)器
Analog(模擬):DAC、ADC
Connectivity(通訊連接):串口、SPI 、I2C、USB、ETH
SYStem(系統(tǒng)):DMA(直接存儲(chǔ)器存取)、GPIO、NVIC、RCC、看門狗
middlewares(中間件): FreeRTOS、FATFS、LwIP、USB
此工程中DMA沒用的不用配置,NVIC(嵌套中斷向量控制器(NestedVectoredInterruptController))配置中斷優(yōu)先級。RCC不用配置。
GPIOPinLevel(管腳狀態(tài)):低電平
GPIOmode (管腳模式 ):推挽輸出
Maximum output speed (最大輸出速度):低速
UserLabel (用戶標(biāo)簽):LED1
更改用戶標(biāo)簽,管腳配置圖會(huì)顯示管腳的標(biāo)簽。
4.功耗計(jì)算
這個(gè)根據(jù)配置的外設(shè)計(jì)算功耗,不用理會(huì)。
5.生成工程報(bào)告
點(diǎn)擊Project –>Generate Reports或者點(diǎn)擊快捷圖標(biāo)生成報(bào)告。系統(tǒng)會(huì)提示先創(chuàng)建一個(gè)工程項(xiàng)目。點(diǎn)擊Yes設(shè)置工程。
輸入工程名,選擇工程路徑(注意不要出現(xiàn)中文,否則可能出錯(cuò))。工具鏈/IDE選擇MDK-ARMV5。最后面可以設(shè)置堆棧大小,此處默認(rèn)不作修改。
在Code Generator中找到Generated files框,勾選Generated periphera initialization as a pair of'.c/.h' files per IP。外設(shè)初始化為獨(dú)立的C文件和頭文件。
點(diǎn)擊生成報(bào)告,工程目錄下會(huì)生成txt文件和pdf文件,里面記錄了我們剛才的設(shè)置。
6. 生成工程代碼
點(diǎn)擊Project–>GenerateCode或者點(diǎn)擊快捷圖標(biāo)生成工程代碼。
點(diǎn)擊Open Project打開工程。到此就配置好工程外設(shè)初始化。
點(diǎn)擊Build按鈕,Build Optput信息框會(huì)輸出沒有錯(cuò)誤沒有警告。
6. 添加應(yīng)用程序在gpio.c文件中可以看到LED管腳的初始化函數(shù)。
在stm32f1xx_hal_gpio.h頭文件中可以看到GPIO的操作函數(shù)。
在main函數(shù)中的while循環(huán)中添加LED流水燈效果的應(yīng)用程序。
重新編譯程序,點(diǎn)擊下載到Open103Z-C開發(fā)板。如果提示錯(cuò)誤,可以點(diǎn)擊圖標(biāo)對Option for Target 的Dubug選項(xiàng)進(jìn)行修改。(圖上選的是ST-LINK)
點(diǎn)擊Settings->Flash Download勾選 Reset and Run選項(xiàng)。這樣程序下載后自動(dòng)啟動(dòng)運(yùn)行,不用再按一下復(fù)位或者重新上電才能運(yùn)行。程序下載到Open103Z-C開發(fā)板??梢钥吹絃ED1~LED4依次被點(diǎn)亮,實(shí)現(xiàn)流水燈的效果。
總結(jié):STM32Cube提供了固件庫,用戶可直接調(diào)用固件庫函數(shù)來開發(fā),并且可以很好的實(shí)現(xiàn)STM32-MCU全系列的代碼一致性。同時(shí)STM32CubeMX工具提供的可視化引腳、外設(shè)、時(shí)鐘等配置功能,可以幫助快速完成工程的建立、初始化。大大降低了開發(fā)者的工作量。 后續(xù)我們會(huì)結(jié)合微雪Open746I-C開發(fā)板,通過STM32cubeMX系列教程講解如何學(xué)習(xí)STM32F7系列的片上外設(shè)。通過STM32F7系列的學(xué)習(xí),可以讓各位更快的掌握其他系列的使用方法。