从0开始操作GD32F303开发板

[复制链接]
2680|10
 楼主| hehhehee 发表于 2025-1-30 12:08 | 显示全部楼层 |阅读模式
文章详细介绍了如何从GD官网下载固件库,包括其文件结构,然后在MDK环境下进行固件库的移植,选择合适的芯片型号,导入和配置相关文件,解决编译错误,最终实现通过编程点亮LED灯。过程中遇到的错误和解决方法也进行了说明。

文章详细介绍了如何从GD官网下载固件库,包括其文件结构,然后在MDK环境下进行固件库的移植,选择合适的芯片型号,导入和配置相关文件,解决编译错误,最终实现通过编程点亮LED灯。过程中遇到的错误和解决方法也进行了说明。
66396679afb33808b3.png

评论

———————————————— 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/ccclittleking/article/details/129669596  发表于 2025-1-31 01:02
 楼主| hehhehee 发表于 2025-1-30 12:14 | 显示全部楼层
固件库移植

1.准备文件,GD32F303对应的芯片包(可从GD官网下载)

73241679afc654f7a5.png

2.启动MDK,创建新工程

16717679afc6b3401c.png
32880679afca8aa9c2.png




芯片包成功安装后可在此处选取对应的芯片,此处选用的是GD32F303ZET6(需要知道对应的芯片型号,不同型号的芯片包含的Flash不同,关系到后面启动文件的选择) ;

打开工程文档,移植文件

90729679afcb1bbfaa.png

37135679afcba0ea3e.png


 楼主| hehhehee 发表于 2025-1-30 12:20 | 显示全部楼层
本帖最后由 hehhehee 于 2025-1-30 12:21 编辑

移植选中的文件,建议在自己的文档中新建文件进行归档;
37059679afe5bedce1.png

创建文件组,将移植的C文件导入


71704679afe4deb94d.png

注意,需要将启动文件一起导入,路径为CMSIS\GD\GD32F30x\Source\ARM



88155679afe3394136.png


移植后文件结构


94576679afe454cec4.png
62402679afe19abcec.png
 楼主| hehhehee 发表于 2025-1-30 12:24 | 显示全部楼层
导入头文件


18412679afecb13c3c.png

53173679afed30a98f.png

72587679afedacc285.png

49314679afee2b1a79.png
84724679afe741f177.png
 楼主| hehhehee 发表于 2025-1-31 00:58 | 显示全部楼层
配置结束后开始编译
94952679bafb81057e.png
 楼主| hehhehee 发表于 2025-1-31 00:59 | 显示全部楼层
配置结束后开始编译 64377679bafd78bd2a.png
 楼主| hehhehee 发表于 2025-1-31 00:59 | 显示全部楼层
一个错误,是不包含 文件,我们将引用代码删除;再编译

78078679baff383b43.png

漂亮,直接变成9个错误。不慌,此处ERROR是因为调用了刚才文件的函数,我们将他们统统删除;

 楼主| hehhehee 发表于 2025-1-31 01:00 | 显示全部楼层
整理后main文件结构
78065679bb008b2962.png


 楼主| hehhehee 发表于 2025-1-31 01:01 | 显示全部楼层
还有一个错误
2986679bb053799e7.png

原因就是我们没有删除干净,要斩草除根!!

 楼主| hehhehee 发表于 2025-1-31 01:02 | 显示全部楼层
打开 gd32f30x_it.c文件,将其删除,就OK了
39220679bb08c9ed95.png


 楼主| hehhehee 发表于 2025-1-31 01:02 | 显示全部楼层
编译成功,尝试点亮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,实验成功。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

89

主题

1252

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部