零、所需文件及環境:
1、固件庫的壓縮包?GD32F4xx_Firmware_Library_V3.2.0.7z 官網
2、GD32F407的keil支持包? 官網?兆易創新GigaDevice-資料下載兆易創新GD32 MCU
2、 keilkilll.bat? ?用來刪除編譯過程文件? ?可以不要 (原子、野火資料里都有)
3、編譯環境MDK5(KEIL5? 最好別用最新版)??
4、一個GD32F407VET6硬件
5、一個下載器j-link 或 st-link等
解壓出來裝上,keil里面就能找到GD的芯片了
解壓出來備用,庫文件就得從這兒復制
壹、新建文件夾
1.1新建文件夾? ?STM32F407工程模版???名字起一個自己喜歡的
1.2 進入文件夾新建二級文件夾 ?Doc、Libraries、Project、User并將 keilkilll.bat 復制過來?
? ? ? ? Doc:存放說明文檔
? ? ? ? Libraries:存放庫文件
? ? ? ? Project:工程文件
? ? ? ? User:你自己寫的都在這兒
1.2.1 Doc文件夾下新建Readme.txt文件 ?寫一些說明之類的東西
1.2.2 User 文件夾下建立三級文件夾APP、BSP。APP存放應用層文件 BSP存放底層驅動文件
貳、復制文件
2.1進入解壓后的GD32F4xx_Firmware_Library_V3.2.0文件夾將Firmware文件夾復制至Libraries文件夾下
2.1進入解壓后的GD32F4xx_Firmware_Library_V3.2.0/Template文件夾將這六個復制到Project
叁、打開MDK5創建工程
3.1 點擊project 選擇 new uvision project?
3.2 選擇工程文件下Project文件夾 在起一個自己喜歡的工程名 點擊保存
3.3 選擇芯片型號 (選錯也無所謂后期都可以改)? 點擊ok
3.4 彈出這個Manage Run-Time Environment?直接關閉了?如果使用這個有時候換臺電腦源碼可能就編譯不過去
3.5 新建成功如圖所示
肆、向工程中添加文件
4.1 點擊這個品字形圖標
4.2 創建如下目錄
4.3 向startup中添加??Libraries/Firmware/CMSIS/GD/GD32F4xx/Source/ARM文件夾下?startup_gd32f407_427.s 文件
4.4?向CMSIS中添加?Libraries/Firmware/CMSIS/GD/GD32F4xx/Source文件夾? system_gd32f4xx.c文件
4.5?向FWLIB中添加??Libraries/Firmware/GD32F4xx_standard_peripheral/Source文件夾下 所有文件??
4.6?向user中添加Project文件夾下 main.c、gd32f4xx_it.c、systick.c
4.7?向DOC中添加??doc文件夾下 readme.txt
4.8?添加完畢點擊ok退出
??
伍、修改main.c
5.1 記得多敲兩行空行? 編譯器原因 會產生警告
陸、添加頭文件路徑
6.1 點擊魔術棒
6.2? 把這個編譯器換過來,新版的keil沒有自帶要自己裝,換過來降版本使用
6.3 把這個也勾上 后期printf重定義的時候可能會報錯。
6.4?添加根文件目錄,添加完畢點擊ok退出
6.5?添加宏GD32F407,USE_STDPERIPH_DRIVER?
6.6? 切換到Output下? 勾上生成hex文件? 完成后點擊OK
柒、編譯
7.1 隨便點一個? 右邊這個是全部編譯? 左邊這個是編譯修改過的? 因為是第一次編譯所以無所謂
7.2 一個錯誤main.h未定義,屏蔽掉或者刪掉再次編譯
7.3?一個錯誤led_spark()未定義,屏蔽掉或者刪掉
7.4 再次編譯 無警告無錯誤
捌、下載
8.1 ?j-link ?swd模式下載程序
8.1.1 繼續點魔術棒 選擇jlink并點擊設置? 自己是啥下載器就選擇什么
8.1.3 點擊settings 更改為swd模式(根據自己實際情況選) 右邊有東西說明找到CPU了? 找不到情況下 看看線序對著沒 硬件晶振是不壞了 cpu是不壞了? ?電源是不沒接上等? 硬件故障自己查找
8.1.3 點擊flash and run? 勾上reset and run? ?點擊確定
8.1.4?出來后記得點ok
8.1.5?編譯下載? 養成習慣 每次下載前編譯一下
8.1.6?下載成功 已經運行? 為什么沒有任何反應呢? ?因為我們啥也沒寫呀?
結尾:根據以前經驗,感覺還要修改晶振,不過咋說呢,串口的時候在說,有示波器的情況下,定時器,延時然后看io口狀態,就可以看出來。這不是懶得動彈不是。
有時候還會提示編譯會提示缺少 RTE_Components.h,看了下文件調用的東西都是一些預編譯的東西,你自己寫一個把那些預編譯全部開通,為了裁剪用的,剛開始不明白,不懂就全部開通