打印

keil新建基础工程(基于gd32f103)

[复制链接]
120|33
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
前言
编辑本文旨在记录笔者嵌入式开发的学习过程,如有不足还望多多指点。

压缩包密码:your_k

一、资料下载
官方资料旨在说明如何获取资料,笔者资料里已包含本篇全部资料

官方资料下载:兆易创新GigaDevice-资料下载兆易创新GD32 MCU
获取步骤:打开上面网页链接后即可下载数据手册,官方例程等资料,如下图所示;



笔者资料下载:百度网盘:链接:https://pan.baidu.com/s/12K2xrI1WF7GJHksAscoivw?pwd=wy7y
提取码:wy7y

使用特权

评论回复
沙发
初级工程渣|  楼主 | 2024-6-30 13:20 | 只看该作者
文件夹创建及文件移植
创建一个文件夹存放工程,格式如下:


文件格式介绍:
bsp:            板级支持包       ——   存放诸如USART、IIC、SPI等等驱动的文件夹;
doc:            文档                  ——   芯片数据手册,开发板原理图等等文件;
hardware:外设驱动           ——   w25q64存储芯片、aht20温湿度传感器等外设驱动文件;
project:     keil工程            ——   keil等集成开发环境IDE工程存放;
system:    芯片支持文件   ——    芯片启动文件、厂家的HAL库函数等;
user:         主函数             ——     代码的主函数,main.c等文件;

使用特权

评论回复
板凳
初级工程渣|  楼主 | 2024-6-30 13:21 | 只看该作者
c及.h文件的创建:
bsp文件中新建:

user文件下:

使用特权

评论回复
地板
初级工程渣|  楼主 | 2024-6-30 13:21 | 只看该作者
移植system文件即gd32f103这款芯片的芯片支持文件:


首先移植CMSIS和GD32F10x_standard_peripheral文件进system路径为:GD32F10x_Demo_Suites_V2.2.0\GD32F10x_Firmware_Library\CMSIS
如下图所示:

使用特权

评论回复
5
初级工程渣|  楼主 | 2024-6-30 13:21 | 只看该作者
然后将CMSIS文件中内容更改为以下文件:

使用特权

评论回复
6
初级工程渣|  楼主 | 2024-6-30 13:22 | 只看该作者
相关文件路径如下:
gd32f10x.h + system_gd32f10x.h :GD32F10x_Demo_Suites_V2.2.0\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Include
startup_gd32f10x_md.s :
GD32F10x_Demo_Suites_V2.2.0\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\ARM
system_gd32f10x.c:GD32F10x_Demo_Suites_V2.2.0\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source
gd32f10x_it.c + gd32f10x_it.h + gd32f10x_libopt.h
GD32F10x_Demo_Suites_V2.2.0\GD32103C_EVAL_Demo_Suites\Projects\01_GPIO_Running_LED

使用特权

评论回复
7
初级工程渣|  楼主 | 2024-6-30 13:22 | 只看该作者
至此CMSIS文件移植完成,至于GD32F10x_standard_peripheral直接将其Include和Source文件夹里的文件移出来就行,如下:

使用特权

评论回复
8
初级工程渣|  楼主 | 2024-6-30 13:22 | 只看该作者
keil工程创建
创建keil工程及相关配置
打开keil新建工程

选择路径后取个工程名


使用特权

评论回复
9
初级工程渣|  楼主 | 2024-6-30 13:23 | 只看该作者
选择芯片型号后点击OK



取消


使用特权

评论回复
10
初级工程渣|  楼主 | 2024-6-30 13:23 | 只看该作者
然后回到工程文件夹中keil如下就是创建成功了:

使用特权

评论回复
11
初级工程渣|  楼主 | 2024-6-30 13:23 | 只看该作者
keil添加.c文件组及.h文件路径

使用特权

评论回复
12
初级工程渣|  楼主 | 2024-6-30 13:23 | 只看该作者
组命名与第一步创建的文件夹名一样即可(hal文件是system文件下GD32F10x_standard_peripheral中的,我一般喜欢命名为hal),如下图所示:

使用特权

评论回复
13
初级工程渣|  楼主 | 2024-6-30 13:23 | 只看该作者
所需添加的.c文件如下图所示(添加后的.c文件会在工程组中显示如下图)

使用特权

评论回复
14
初级工程渣|  楼主 | 2024-6-30 13:24 | 只看该作者
注:若添加的文件后缀不是.c命名的需要将文件类型更改一下,即可看到其他后缀的文件,如下图所示:

使用特权

评论回复
15
初级工程渣|  楼主 | 2024-6-30 13:24 | 只看该作者
至此.c文件添加完毕,接下来添加.h文件



使用特权

评论回复
16
初级工程渣|  楼主 | 2024-6-30 13:24 | 只看该作者
添加以下路径

使用特权

评论回复
17
初级工程渣|  楼主 | 2024-6-30 13:24 | 只看该作者
代码编写
编写代码测试
main.c

#include "main.h"

int main(void)
{
    bsp_init();

    while (1)
    {
        bsp_gpio_toggle();
                delay_ms(500);
    }

}

使用特权

评论回复
18
初级工程渣|  楼主 | 2024-6-30 13:25 | 只看该作者
main.h
#ifndef MAIN_H
#define MAIN_H

/* C库 函数 */
#include <math.h>
#include <stdio.h>
#include <stdint.h>
#include <string.h>

#include "bsp.h"

#endif

使用特权

评论回复
19
初级工程渣|  楼主 | 2024-6-30 13:25 | 只看该作者
bsp.c

#include "bsp.h"

void bsp_init(void)
{
    system_config();
    bsp_gpio_init();   /* PC13 */
}

使用特权

评论回复
20
初级工程渣|  楼主 | 2024-6-30 13:25 | 只看该作者
bsp.h
#ifndef BSP_H
#define BSP_H

#include <stdint.h>         // c 库

#include "gd32f10x.h"                // gd32 hal库

#include "bsp_system.h"     // bsp 库
#include "bsp_gpio.h"

void bsp_init(void);

#endif

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

553

帖子

0

粉丝