GD32F303开发系列文章目录
第一章 GD32微控制器开发工具的安装与配置
第二章 GD32基准工程实验
第三章 GD32串口通信实验
第四章 GD32EXMC与LCD显示实验
文章目录
前言
本文以一个基准工程的创建为主线,分为16个步骤,对Keil软件的使用,以及工程的编译和程序下载进行介绍。将编译生成的.hex和.axf文件下载到GD32F3苹果派开发板,验证以下基本功能:两个LED(编号为LED1和LED2)每500ms交替闪烁;计算机上的串口助手每秒输出一次字符串。
二、基准工程实验
1.新建存放工程的文件夹
在计算机的D盘中建立一个GD32F3KeilTest文件夹,将资料包的“04.例程资料\Material”文件夹复制到GD32F3KeilTest文件夹中,然后在GD32F3KeilTest文件夹中新建一个Product文件夹。工程保存的文件夹路径也可以自行选择。注意,保存工程的文件夹一定要严格按照要求进行命名,从细微之处养成良好的规范习惯。
2.新建存放工程的文件夹
首先,在D:\GD32F3KeilTest\Product文件夹中新建一个名为“01.BaseProject”的文件夹;其次,将“D:\GD32F3KeilTest\Material\01.BaseProject”文件夹中的所有文件夹和文件(包括Alg、App、ARM、FW、HW、OS、TPSW)复制到“D:\GD32F3KeilTest\Product\01.BaseProject”文件夹中;最后,在“D:\GD32F3KeilTest\Product\01.BaseProject”文件夹中新建一个Project文件夹。
3.新建一个工程
打开Keil μVision5软件,执行菜单命令Project→New μVision Project,在弹出的Create New Project对话框中,工程路径选择“D:\GD32F3KeilTest\Product\01.BaseProject\Project”,将工程名命名为GD32KeilPrj,最后单击“保存”按钮,如下图所示。
4.选择对应的微控制器型号
在弹出的Select Device for Target 'Target 1’对话框中,选择对应的微控制器型号,由于开发板上微控制器的型号是GD32F303ZET6,因此在如下图所示的对话框中,选择GD32F303ZE,然后单击OK按钮。
5.设置Manage Run-Time Environment对话框
由于使用到微控制器软件接口标准(CMSIS:Cortex Microcontroller Software Interface Standard),因此,在弹出的如下图所示的Manage Run-Time Environment对话框中,先展开CMSIS选项,然后在Sel一栏中勾选CORE对应的选项,最后单击OK按钮保存设置并关闭对话框。
6.删除原有分组并新建分组
关闭Manage Run-Time Environment对话框之后,一个简单的工程创建完成,工程名为GD32KeilPrj。在Keil软件界面的左侧可以看到,Target1下有一个Source Group1分组,这里需要将已有的分组删除,并添加新的分组。首先,单击工具栏中的按钮,如下图所示,在Project Items标签页中,单击Groups栏中的按钮,删除Source Group 1分组。
接着,单击Groups栏中的按钮,依次添加App、Alg、HW、OS、TPSW、FW、ARM分组,如下图所示。注意,可以通过单击箭头按钮调整分组的顺序。
7.向分组添加文件
如下图所示,在Groups栏中,单击选择App,然后单击Add Files按钮。在弹出的Add Files to Groups 'App’对话框中,查找范围选择“D:\GD32F3KeilTest\Product\01.BaseProject\App\Main”。最后,单击选择Main.c文件,再单击Add按钮,将Main.c文件添加到App分组中。注意,也可以在Add Files to Groups 'App’对话框中,通过双击Main.c文件向App分组中添加该文件。
采用同样的方法,将“D:\GD32F3KeilTest\Product\01.BaseProject\App\LED”路径下的LED.c文件添加到App分组中,添加完成后的效果图如下图所示。
将“D:\GD32F3KeilTest\Product\01.BaseProject\HW\RCU”路径下的RCU.c文件、“D:\GD32F3KeilTest\Product\01.BaseProject\HW\Timer”路径下的Timer.c文件、“D:\GD32F3KeilTest\Product\01.BaseProject\HW\UART0”路径下的Queue.c和UART0.c文件分别添加到HW分组中。添加完成后的效果图如下图所示。
将“D:\GD32F3KeilTest\Product\01.BaseProject\FW\Source”路径下的gd32f30x_fmc.c、gd32f30x_gpio.c、gd32f30x_misc.c、gd32f30x_rcu.c、gd32f30x_timer.c、gd32f30x_usart.c文件添加到FW分组中。添加后的效果图如下图所示。
将“D:\GD32F3KeilTest\Product\01.BaseProject\ARM\System”路径下的gd32f30x_it.c、system_gd32f30x.c、startup_gd32f30x_hd.s文件添加到ARM分组中,再将“D:\GD32F3KeilTest\Product\01.BaseProject\ARM\NVIC”路径下的NVIC.c文件和“D:\GD32F3KeilTest\Product\01.BaseProject\ARM\SysTick”路径下的SysTick.c文件添加到ARM分组中,添加完成后的效果图如下图所示。注意,向ARM分组中添加startup_gd32f30x_hd.s文件时,需要在“文件类型(T)”的下拉菜单中选择Asm Source file (.s; .src; .a)或All files (.*)。
8.勾选Use MicroLIB项
为了方便调试,本文在很多地方都使用了printf语句。在Keil中使用printf语句,需要勾选Use MicroLIB项,如下图所示。首先,单击工具栏中的按钮,在弹出的Options for Target 'Target1’对话框中,单击Target标签页,勾选Use MicroLIB项。然后,将ARM Compiler选项设置为Use default compiler version 5。最后,单击OK按钮保存设置。
9.勾选Create HEX File
通过GD-Link既可以下载.hex文件,也可以将.axf文件下载到GD32微控制器的内部Flash中,这里使用GD-Link下载.axf文件。Keil默认编译时不生成.hex文件,如果需要生成.hex文件,则需要勾选Create HEX File项。首先,单击工具栏中的按钮,在弹出的Options for Target 'Target1’对话框中,单击Output标签页,勾选Create HEX File项,如下图所示。注意,通过GD-Link下载.hex文件一般要使用GD-Link Programmer软件,限于篇幅,这里不介绍如何下载。
10.添加宏定义和头文件路径
由于GD32微控制器的固件库具有非常强的兼容性,只需要通过宏定义就可以区分使用在不同型号的微控制器上,而且,可以通过宏定义选择是否使用标准库,具体做法如下。首先,单击工具栏中的按钮,在弹出的Options for Target 'Target1’对话框中,单击C/C++标签页,如下图所示,在Define栏中输入USE_STDPERIPH_DRIVER,GD32F30X_HD。注意,USE_STDPERIPH_DRIVER和GD32F30X_HD用英文逗号隔开,第一个宏定义表示使用标准库,第二个宏定义表示使用的微控制器型号为GD32F30x系列。
添加完分组中的.c文件和.s文件后,还需要添加头文件路径,这里以添加Main.h头文件路径为例进行介绍。首先,单击工具栏中的按钮,在弹出的Options for Target 'Target1’对话框中:①单击C/C++标签页;②单击“文件夹设定”按钮;③单击“新建路径”按钮;④将路径选择到“D:\GD32F3KeilTest\Product\01.BaseProject\App\Main”;⑤单击OK按钮,如下图所示。这样就可以完成Main.h头文件路径的添加。
采用添加Main.h头文件路径的方法,依次添加其他头文件路径。所有头文件路径添加完成后的效果图如下图所示。
11.程序编译
完成以上步骤后,可以开始程序编译。单击工具栏中的(Rebuild)按钮,对整个工程进行编译。当Build Output栏中出现FromELF:creating hex file…时,表示已经成功生成.hex文件;出现0 Error(s), 0 Warnning(s)时,表示编译成功,如下图所示。
12.通过GD-Link下载程序
取出开发套件中的两条USB转Type-C型连接线和GD32F3苹果派开发板。将两条连接线的Type-C接口端接入开发板的通信-下载和GD-Link接口,然后将两条连接线的USB接口端均插到计算机的USB接口,如下图所示。
打开Keil μVision5软件,单击工具栏中的按钮,进入设置界面。在弹出的Options for Target 'Target1’对话框中,选择Debug标签页,如下图所示,在Use下拉列表中,选择CMSIS-DAP Debugger,然后单击Settings按钮。
在弹出的CMSIS-DAP Cortex-M Target Driver Setup对话框中,选择Debug标签页,如下图所示,在Port下拉列表中,选择SW;在Max Clock下拉列表中,选择1MHz。
再选择Flash Download标签页,如下图所示,勾选Reset and Run项,然后单击OK按钮。
打开Options for Target 'Target 1’对话框中的Utilities标签页,如下图所示,勾选Use Debug Driver和Update Target before Debugging项,最后单击OK按钮。
GD-Link调试模式设置完成,确保GD-Link接口通过USB转Type-C型连接线连接到计算机之后,就可以在如下图所示的界面中,单击工具栏中的按钮,将程序下载到GD32F303ZET6微控制器的内部Flash中。下载成功后,在Bulid Output栏中将显示方框中所示的内容。
13.安装CH340驱动
下面介绍如何通过串口下载程序。通过串口下载程序,还需要借助开发板上集成的通信-下载模块,因此,要先安装通信-下载模块驱动。
在配套资料包的“02.相关软件\CH340驱动(USB串口驱动)_XP_WIN7共用”文件夹中,双击运行SETUP.EXE,单击“安装”按钮,在弹出的DriverSetup对话框中单击“确定”按钮,如下图所示。
驱动安装成功后,将开发板上的通信-下载接口通过USB转Type-C型连接线连接到计算机,然后在计算机的设备管理器中找到USB串口,如下图所示。注意,串口号不一定是COM3,每台计算机有可能会不同。
14.通过GigaDevice MCU ISP Programmer下载程序
首先确保在开发板的J104排针上,已用跳线帽分别将U_TX和PA10引脚、U_RX和PA9引脚连接。然后在配套资料包的“02.相关软件\串口烧录工具\GigaDevice_MCU_ISP_Programmer_V3.0.2.5782_1”文件夹中,双击运行GigaDevice MCU ISP Programmer.exe,如下图所示。
在弹出如下图所示的GigaDevice ISP Programmer 3.0.2.5782对话框中,在Port Name下拉列表中,选择COM3(需在设备管理器中查看串口号);在Baut Rate下拉列表中,选择57600;在Boot Switch下拉列表中,选择Automatic;在Boot Option下拉列表中,选择RTS高电平复位,DTR高电平进Bootloader,最后单击Next按钮。
然后在弹出如下图所示的对话框中,单击Next按钮。
在弹出如下图所示的对话框中,单击Next按钮。
在弹出如下图所示的对话框中,选择Download to Device项,选择Erase all pages (faster)项,然后单击OPEN按钮,定位编译生成的.hex文件。
在“D:\GD32F3KeilTest\Product\01.BaseProject\Project\Objects”目录下,找到GD32KeilPrj.hex文件并单击Open按钮,如下图所示。
在如上图所示对话框中单击Next按钮开始下载,出现如下图所示界面表示程序下载成功。注意,使用GigaDevice MCU ISP Programmer成功下载程序后,需按开发板上的RST按键进行复位,程序才会运行。
15.通过串口助手查看接收数据
在配套资料包的“02.相关软件\串口助手”文件夹中,双击运行sscom42.exe(串口助手软件),如下图所示。选择正确的串口号,波特率选择115200,取消勾选“HEX显示”项,然后单击“打开串口”按钮。当窗口中每秒输出一次This is the first GD32F303 Project, by Zhangsan时,表示实验成功。注意,实验完成后,在串口助手软件中先单击“关闭串口”按钮关闭串口,再断开GD32F3苹果派开发板的电源。
16.查看GD32F3苹果派开发板的工作状态
此时可以观察到开发板上电源指示灯(编号为5V_LED,蓝色)正常显示,绿色LED(编号为LED1)和蓝色LED(编号为LED2)每500ms交替闪烁。
总结
以上就是今天要讲的内容,本文按照程序设计的步骤,进行软件标准化设置、创建工程、编译并生成.hex和.axf文件、最后将程序下载到GD32F3苹果派开发板,下一章将通过实例介绍GD32串口通信实验。