摘要
利用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>>