目录
1.固件库结构
2.固件库移植
3.烧录
一.固件库文件结构
固件库可到GD官网下载,此处对应的版本为2.15,库文件结构如下;
Doc:文件为介绍文档,里面有汉英两版本的固件库介绍,可在其中查找相关文件以及函数的介绍
Example:此处包含了各个模块的例程,ADC,GPIO,串口等文件;
Firmware:包含了启动文件等必备的关键文件;
Template:为官方提供的一个移植例程;
Utilities:包含了其它的一些外设文件;
二.固件库移植
1.准备文件,GD32F303对应的芯片包(可从GD官网下载)
2.启动MDK,创建新工程
芯片包成功安装后可在此处选取对应的芯片,此处选用的是GD32F303ZET6(需要知道对应的芯片型号,不同型号的芯片包含的Flash不同,关系到后面启动文件的选择) ;
打开工程文档,移植文件
移植选中的文件,建议在自己的文档中新建文件进行归档;
创建文件组,将移植的C文件导入
注意,需要将启动文件一起导入,路径为CMSIS\GD\GD32F30x\Source\ARM
移植后文件结构
导入头文件
配置结束后开始编译
一个错误,是不包含 文件,我们将引用代码删除;再编译
漂亮,直接变成9个错误。不慌,此处ERROR是因为调用了刚才文件的函数,我们将他们统统删除;
整理后main文件结构
还有一个错误
原因就是我们没有删除干净,要斩草除根!!
打开 gd32f30x_it.c文件,将其删除,就OK了
编译成功,尝试点亮LED灯
systick_config();
rcu_periph_clock_enable(RCU_GPIOA);
rcu_periph_clock_enable(RCU_GPIOE);//使能时钟
gpio_init(GPIOA,GPIO_MODE_OUT_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_8);
gpio_init(GPIOE,GPIO_MODE_OUT_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_6);//对应引脚配置
GPIO_BC(GPIOA)=GPIO_PIN_8;
GPIO_BC(GPIOA)=GPIO_PIN_6;//我也不懂,反正就是能亮
while (1){
GPIO_BOP(GPIOA)=GPIO_PIN_8;//ÁÁ
delay_1ms(500);
GPIO_BC(GPIOA)=GPIO_PIN_8;//°µ
GPIO_BOP(GPIOE)=GPIO_PIN_6;
delay_1ms(500);
GPIO_BC(GPIOE)=GPIO_PIN_6;
}
ok,实验成功。
第一次写文章,非常不专业,大概能看懂就好了,我水平有限,出问题也不一定知道。轻点喷