个人学习笔记记录
GD32开发环境配置
GD32命名方式
GD32 命名方式如下
GD32开发资料
GD32 提供了丰富的参考资料,这些资料可以从兆易创新网站获取(www.gigadevice.com.cn)
下面介绍两种资料:
- GD32F303xx Datasheet
GD32F303 系列的数据手册。手册对单片机的外设、电路特性进行了基本的介绍。开发
者可以从数据手册中获取到单片机的基本属性。 - GD32F30x User Manual
GD32F30x 的用户手册。用户手册详细的介绍了各寄存器功能及编程方式。用户手册是
单片机开发最权威的指引。
开发环境搭建
本文基于KEIL v5版本进行GD32开发。使用 MDK-Arm 作为 IDE。MDK-Arm 集代码编写、编译、单片机调试为一体。
MDK-Arm 可在官网(https://ww w.keil.com/download/product)填写信息后后下载安装。
相关固件包可以在 KEIL 的 MDK5 软件包网页(https://www.keil.com/dd2/pack)找到。在 GigaDevice 栏目中找到最新的 DFP 文件下载安装即可。
编写工程文件时可以使用官网下载GD32F30x_Firmware_Library_V2.1.5,该文件内含有各个外设的例程,和工程模板。但为了后续开发便利,将模板工程进一步分层。分层示意图如下:
其中User中存放main.c,systick.c和gd32f30x_it.c以及一系列文件。
Peripherals存放一系列GD32的外设库文件,如gd32f30x_gpio.c等。
Hardware存放一些编写的硬件代码,如LED,蜂鸣器,液晶显示屏等代码。
如果需要完成控制任务,如四旋翼和小车,需要另外添加控制文件夹,将各层代码分层管理。
这里不在详细描述如何烧录代码,如何配置rom和ram区,可以自行搜索了解。
GD32简单代码上手
为了验证开发板能否正常工作,选择简单编写LED闪烁代码来验证。如果不懂得LED的原理可以先自行了解,不在赘述。
下面提供一份示例代码供测试使用:
#include "gd32f30x.h" //GD32F303对应的头文件
void SW_delay_ms(unsigned int time); //申明的软件演示函数,进行毫秒级别延时
int main(void) //主函数
{
rcu_periph_clock_enable(RCU_GPIOB); //使能PB端口时钟
gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0);
//设置PB0端口为:推挽输出,速度最大50MHz
while(1)
{
gpio_bit_set(GPIOB, GPIO_PIN_0); //PB0输出高电平
SW_delay_ms(500); //延时500毫秒
gpio_bit_reset(GPIOB, GPIO_PIN_0); //PB0输出低电平
SW_delay_ms(500); //延时500毫秒
}
}
void SW_delay_ms(unsigned int time) //软件延时函数定义
{
unsigned int i=0;
while(time--)
{
i=30000; // i=30000下近似为1ms延时
while(i--) ;
}
}
//这里软件演示函数内i=3000根据主频不同自行修改,这里主频为120MHZ
后续内容将会详细介绍各个gd32系统库文件的使用方法和说明。