零、所需文件及环境:
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,看了下文件调用的东西都是一些预编译的东西,你自己写一个把那些预编译全部开通,为了裁剪用的,刚开始不明白,不懂就全部开通