【STM32項目筆記】STM32CubeMX+Keil+Proteus聯合實現LED閃爍
- 2020 年 4 月 12 日
- 筆記
摘要
利用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>>