1. 程式人生 > >【STM32專案筆記】STM32CubeMX+Keil+Proteus聯合實現LED閃爍

【STM32專案筆記】STM32CubeMX+Keil+Proteus聯合實現LED閃爍

摘要

利用STM32CubeMx配置STM32晶片的功能,然後將配置後的內容生成程式碼,並匯出成可以使用Keil開啟編輯的檔案,在Keil中新增控制程式碼後,下載到Proteus模擬中,使用模擬觀察程式碼執行結果。

   

所需軟體

1) STM32CubeMx

下載地址:https://www.st.com/en/development-tools/stm32cubemx.html

2) Keil

軟體版本:uVision V5.14.2

3) Proteus

軟體版本:8.9 ps2

實現的功能

PA1接LED,實現LED閃爍

   

1 STM32CubeMx建立STM32工程檔案

STM32CubeMX開啟介面如圖1-1所示。

圖1-1 STM32CubeMX初始介面

   

1.1 建立工程

使用File->New Project建立STM32配置工程。如圖1-2所示,然後彈出如圖1-3所示的MCU型號選擇視窗。

圖1-2 建立工程

   

圖1-3 選擇MCU 型號

   

在圖1-3的Part Number Search視窗輸入預選擇的型號,本次選擇STM32F103R6(Proteus中包含該IC)。輸入STM32F103R6後彈出如圖1-4所示介面。

圖1-4 檢索出兩款STM32IC

   

根據封裝不同,檢索出兩種型別STM32F103R6 處理器,選擇LQFP64封裝的在2所示位置雙擊,彈出如圖1-5所示介面。

圖1-5 建立完成的STM32F103CubeMx 工程

   

1.2 配置晶片引數

需要配置的引數如下:

系統時鐘,下載方式(可選,本次為模擬,可以不使用Debug方式)以及引腳功能。

1.2.1 配置系統下載方式

選擇Categories下的SYS彈出右圖所示的SYS Mode and Configuration介面,在如圖2所示的地方選擇下載Debug方式,本次使用模擬的方式,所以Debug方式可以選擇No Debug。

圖1-6 配置系統下載方式

1.2.2 配置系統時鐘

選擇Categories下的RCC選擇時鐘源,如圖1-7所示,可選擇的時鐘包括HSE和LSE,由於本次模擬中僅使用HSE時鐘,所以僅對HSE時鐘進行選擇,選擇Crystal/Ceramic Resonator外部時鐘。如圖1-7所示。

圖1-7 系統時鐘選擇

   

選完時鐘後,進入Clock Configuration介面進行時鐘配置,首先設定外部時鐘源輸入頻率Input Frequency,然後選擇PLL Source Mux的通道,最後雙擊HCLK頻率,然後系統會自動配置成用於期望的時鐘。配置前的時鐘圖如圖1-8所示,配置完成的時鐘圖如圖1-9所示。

圖1-8 系統時鐘配置

   

圖1-9 配置後系統時鐘結構

1.2.3 配置GPIO口功能

開啟如圖1-10所示的介面,開始配置GPIO口功能,本例程目標是實現LED(連線至PA1)閃爍,所以需要配置PA1為輸出功能。

圖1-10 GPIO功能配置介面

單擊對應的引腳PA1,然後選擇GPIO模式為GPIO_Output。如圖1-11所示。

圖1-11 GPIO 功能配置

右擊PA1引腳,選擇Enter User Label,為GPIO分配標識,本次設定為LED01。如圖1-12所示。

圖1-12 GPIO 標識分配

接下來進入如圖1-13所示的介面配置GPIO引腳詳細引數。單擊黃色箭頭所指PA1,彈出如圖1-14所示介面,進行GPIO詳細引數配置。

圖1-13 GPIO 配置介面

如圖1-14,將PA1配置為預設輸出高電平,推輓輸出模式,上拉,高速輸出模式,引腳標識為LED01。

圖1-14 GPIO 詳細配置介面

至此,STM32晶片的基本引數已經配置完成了。☆

   

1.3 輸出配置好的工程

進入如圖1-15所示的Project Manager介面進行輸出配置,如圖1-15所示。

Project Name輸入工程檔名;本次定義為Prj_STM32F103_LED

Project Location輸入工程放置路徑;

Toolchain/IDE選擇預輸出的IDE型別;本次選擇MDK-ARM

Min Verison選擇軟體版本號;V5

圖1-15 工程輸出配置介面

配置完成的介面如圖1-16所示。

圖1-16 配置好的輸出配置

Code Generator中選中箭頭所示位置。這樣輸出檔案將包括.c和.h檔案。

圖1-17 配置Code Generator

1.4 生成程式碼

選擇如圖1-18箭頭所指的GENERATE CODE生成Keil程式碼。

圖1-18 生成程式碼

圖1-19 生成的Keil原始碼

2 Proteus 搭建基於STM32 LED控制電路圖

2.1 建立Proteus工程

開啟軟體,然後選擇File->New Project開啟如圖2-1所示介面。

圖2-1 新建工程介面

圖2-2 填寫工程名字和路徑

填寫完畢後,點選Next,進入如圖2-3所示介面,根據設計需要選擇圖紙大小。

圖2-3

選擇完畢後點擊Next進入如圖2-4所示介面。

2-4

預設,無需設計PCB,所以選擇Next即可,進入如圖2-5所示介面。

2-5

由於使用CubeMX 和Keil聯合對STM32進行模擬,所以無需用Proteus進行開發,故直接點選Next進入2-6所示介面。

2-6

點選Finish完成工程建立。

2.2 檢索器件

按照如圖2-7所示的方式新增元器件,首先選擇器件標記,然後單擊P進入Pick Devices介面,然後在Keywords介面輸入要檢索的器件,然後進行選擇。

2-7

2.3 放置器件

圖2-8

按照如圖2-8的方式進行器件的放置操作,在2的位置選中器件,然後在3所示的圖紙視窗單擊即可。

2.4 放置電源

2-9

2-10

2.5 配置STM32F103R6引數

雙擊圖2-10介面所示的STM32F103R6器件,彈出如圖2-11所示介面,在該介面設定相應的引數,其中在Program File新增程式生成的HEX檔案,Crystal Frequency設定系統頻率,這裡設定為72MHz。

   

   

3 利用Keil新增控制程式碼

在Keil中新增程式碼需要注意,使用者需要將程式碼新增到私有程式碼中如圖所示。新增到其他地方,會發生生使用CubeMX更新後,程式碼被清除問題。

   

圖3-1

在如圖3-2所示的位置,新增如圖3-2所示的LED電平翻轉程式碼。

圖3-2

   

4 模擬結果

   

 

<<Pro_STM32F103_LED - Proteus 8 Professional - Schematic Capture 2020-04-12 08-54-18.mp4>>

&n