【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