Tangwx

Tangwx

博客网站

STM32F407VET6使用V1.9.0標準庫創建工程

STM32F407VET6 使用 V1.9.0 標準庫創建工程#

1. 新建項目目錄#

對於完全新建的工程,需要自己新建一個空的工程目錄,新建一個文件夾,下面放 5 個子文件夾,分別命名 Core、Hardware、Library、System、User,每個文件夾在後續會放置不同的工程文件

image-20230516094603253

2. 下載 STM32 固件庫#

STM32 固件庫包含了 STM32 外設對應的庫函數 c 文件和 h 文件,以及必需的啟動文件等,固件庫同樣的需要到官網下載,這裡我提供藍奏雲下載

image-20230516094906621

3. 將固件庫中的文件拷貝到工程路徑#

首先需要將固件庫中的外設文件拷貝到工程路徑中,將固件庫路徑 \STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\STM32F4xx_StdPeriph_Driver下的srcinc文件夾拷貝到工程目錄Library下,其中src 存放的是 固件庫的.c 文件,inc 存放的是對應的.h 文件

image-20230516102142515

拷貝固件庫\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\ Templat es\arm到工程目錄Core下,文件startup_stm32f40_41xxx.s為啟動文件

image-20230516102508965

拷貝固件庫 \STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\Includ 如下相關核心文件到工程目錄 CORE 下

image-20230516102620026

image-20230516102737816

image-20230516102903516

現在工程目錄Core下已經拷貝了這些文件

將固件庫 \STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Project\ STM32F4xx_StdPeriph_Templates 拷貝到工程目錄 USER 下

image-20230516103319225

4.Keil 新建工程#

打開 Keil5,頂部菜單欄選擇 Project→New uVision Project 創建新工程,如果有其他工程,先點擊 Project->Close Project

image-20230516104320898

保存到剛剛我們新建文件夾的目錄下,保存文件名為STM32F407VEProject

image-20230516104415707

選擇芯片STM32F407VETx

image-20230516105042136

點擊 OK,然後關閉下面窗口

image-20230516105128016

點擊Manage Project Items

image-20230516105334004

修改成以下形式

image-20230516110855572

Core添加以下文件

image-20230516111104634

Library添加Library/src文件夾內所有文件

image-20230516111120725

User添加以下文件

image-20230516111139078

點擊 OK 關閉窗口

點擊魔術棒,添加文件路徑

image-20230516110432554

添加以下路徑

image-20230516111219323

點擊 OK,再添加全局宏定義標識符STM32F40_41xxx,USE_STDPERIPH_DRIVER

image-20230516111512699

再點擊 OK

點開main.c, 將內部數據清空,僅留下主函數

image-20230516111912616

再將User分組下面的 stm32f4xx_it.c 文件內刪掉其中的32行對main.h 頭文件的引入以及 144 SysTick_Handler 函數內容

image-20230516112029682

image-20230516112043558

最後點開Library找到stm32f4xx_fmc.c, 右鍵Options

include in Target Build前面的勾去掉,
stm32f4xx_fmc.c比較特殊。這個文件是STM32F42STM32F43系列才用到,所以我們這裡要把它移除出工程(注意是 stm32f4xx_fmc.c ,不是 stm32f4xx_fsmc.c)。

image-20230516112357746

移除 FMC 和 FSMC 後在在編譯有可能會發生以下情況:
image-20230516122752307
編譯完成後我們發現還有錯誤,用鼠標雙擊錯誤信息找到報錯的地方

image-20230516123649754

原因是重複定義了,算是官方 bug,需要註釋掉報錯的代碼:

image-20230516123602246

將這部分註釋掉即可發現警告消失了

至此工程新建完畢,我建好的工程鏈接

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。