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

[复制链接]
4646|33
 楼主| 初级工程渣 发表于 2024-6-30 13:20 | 显示全部楼层 |阅读模式
前言
编辑本文旨在记录笔者嵌入式开发的学习过程,如有不足还望多多指点。

压缩包密码:your_k

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

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



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

 楼主| 初级工程渣 发表于 2024-6-30 13:20 | 显示全部楼层
文件夹创建及文件移植
创建一个文件夹存放工程,格式如下:

75146680eb30e8cf1.png
文件格式介绍:
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文件中新建:
744266680eb49dbd0c.png
user文件下:
737156680eb4f9a9d8.png
 楼主| 初级工程渣 发表于 2024-6-30 13:21 | 显示全部楼层
移植system文件即gd32f103这款芯片的芯片支持文件:
508246680eb5ec1a42.png

首先移植CMSIS和GD32F10x_standard_peripheral文件进system路径为:GD32F10x_Demo_Suites_V2.2.0\GD32F10x_Firmware_Library\CMSIS
如下图所示:
762296680eb637ac48.png
 楼主| 初级工程渣 发表于 2024-6-30 13:21 | 显示全部楼层
然后将CMSIS文件中内容更改为以下文件:
733046680eb6e70565.png
 楼主| 初级工程渣 发表于 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
 楼主| 初级工程渣 发表于 2024-6-30 13:22 | 显示全部楼层
至此CMSIS文件移植完成,至于GD32F10x_standard_peripheral直接将其Include和Source文件夹里的文件移出来就行,如下:
74986680eb83a054a.png
 楼主| 初级工程渣 发表于 2024-6-30 13:22 | 显示全部楼层
keil工程创建
创建keil工程及相关配置
打开keil新建工程
316556680eb94225a3.png
选择路径后取个工程名
552876680eb99d2ad4.png

 楼主| 初级工程渣 发表于 2024-6-30 13:23 | 显示全部楼层
选择芯片型号后点击OK

645676680eba51d020.png

取消
543026680ebadd8d72.png

 楼主| 初级工程渣 发表于 2024-6-30 13:23 | 显示全部楼层
然后回到工程文件夹中keil如下就是创建成功了:

671096680ebbe43e3c.png
 楼主| 初级工程渣 发表于 2024-6-30 13:23 | 显示全部楼层
keil添加.c文件组及.h文件路径

281976680ebc91844f.png
 楼主| 初级工程渣 发表于 2024-6-30 13:23 | 显示全部楼层
组命名与第一步创建的文件夹名一样即可(hal文件是system文件下GD32F10x_standard_peripheral中的,我一般喜欢命名为hal),如下图所示:

826506680ebd3d33d6.png
 楼主| 初级工程渣 发表于 2024-6-30 13:23 | 显示全部楼层
所需添加的.c文件如下图所示(添加后的.c文件会在工程组中显示如下图)
534686680ebe1b03c0.png
 楼主| 初级工程渣 发表于 2024-6-30 13:24 | 显示全部楼层
注:若添加的文件后缀不是.c命名的需要将文件类型更改一下,即可看到其他后缀的文件,如下图所示:
654756680ebef961e0.png
 楼主| 初级工程渣 发表于 2024-6-30 13:24 | 显示全部楼层
至此.c文件添加完毕,接下来添加.h文件

794866680ebfb446a4.png

157406680ec00d3f3a.png
 楼主| 初级工程渣 发表于 2024-6-30 13:24 | 显示全部楼层
添加以下路径

884116680ec0f12869.png
 楼主| 初级工程渣 发表于 2024-6-30 13:24 | 显示全部楼层
代码编写
编写代码测试
main.c

#include "main.h"

int main(void)
{
    bsp_init();

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

}
 楼主| 初级工程渣 发表于 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
 楼主| 初级工程渣 发表于 2024-6-30 13:25 | 显示全部楼层
bsp.c

#include "bsp.h"

void bsp_init(void)
{
    system_config();
    bsp_gpio_init();   /* PC13 */
}
 楼主| 初级工程渣 发表于 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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

821

帖子

1

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