2、GD32学习--demo

作者: liunian__92
上传时间为: 2015-07-10 08:34 AM

GD32_board_front.jpg

官方给的资料还是蛮多的。
第一次的时候安装的是 MDK 5.10 在安装 Keil.GD32F1xx_DFP.1.0.1.pack 的时候报错,安装了 MDK 5.14,然后在安装Keil.GD32F1xx_DFP.1.0.1.pack,成功了。

首先查看板卡的Example程序,如下:

1-例程.jpg

图2-1:Example路径

所有的Example都在一个文件中,examp.h 文件中修改相应的配置即可。

2-修改参数.jpg

图2-2:修改

如下所示,打开板卡带的东东。


首先新建一个Demo的文件夹,将如下内容复制到Demo文件夹中

2-复制库文件.jpg

图2-3:固件库内容

4-新建demo.jpg

图2-4:新建demo

5-选择器件.jpg

图2-5:选择器件

在Demo下新建usr文件夹,然后新建一个main.c的文件,放入以下内容。

#include "gd32f1x0.h"
#include "gd32f1x0_gpio.h"
#include "gd32f1x0_rcc.h"

#define LED_ON  (1)
#define LED_OFF (0)
#define LED1    (1)
#define LED2    (2)
#define LED3    (3)
#define LEDALL  (5)

void EVB_LEDConfig(void)
{
    GPIO_InitPara GPIO_InitStructure;

    RCC_AHBPeriphClock_Enable(RCC_AHBPERIPH_GPIOC,ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_PIN_10|GPIO_PIN_11;
    GPIO_InitStructure.GPIO_Mode = GPIO_MODE_OUT;
    GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ;
    GPIO_InitStructure.GPIO_OType = GPIO_OTYPE_PP;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PUPD_NOPULL;
    GPIO_Init(GPIOC,&GPIO_InitStructure);

    GPIO_ResetBits(GPIOC,GPIO_PIN_10|GPIO_PIN_11);
}



void EVB_LEDControl(int index, int cmd)
{
    switch (index)
    {
        case LED1:
        {
            if (cmd == LED_ON)
            {
                GPIO_SetBits(GPIOC,GPIO_PIN_10);  
            }
            else
            {
                GPIO_ResetBits(GPIOC,GPIO_PIN_10); 
            }
            break;
        }
        case LED2:
        {
            if (cmd == LED_ON)
            {
                GPIO_SetBits(GPIOC,GPIO_PIN_11);  
            }
            else
            {
                GPIO_ResetBits(GPIOC,GPIO_PIN_11);
            }
            break;
        }
        default:
        {
            if (cmd == LED_ON)
            {
                GPIO_ResetBits(GPIOC,GPIO_PIN_10|GPIO_PIN_11); 

            }
            else
            {
                GPIO_ResetBits(GPIOC,GPIO_PIN_10|GPIO_PIN_11); 
            }
            break;
        }
    }
}



int main(void)
{
    int i;

    EVB_LEDConfig();
          EVB_LEDControl(LED2, LED_OFF);
          EVB_LEDControl(LED1, LED_OFF);
    while(1)
    {
        for (i = 0; i< 0x0fffff; i++);
                                        EVB_LEDControl(LED2, LED_ON);
        
        for (i = 0; i< 0x0fffff; i++);
                                        EVB_LEDControl(LED2, LED_OFF);
    }
}

添加group 添加文件如下:

2-6

图2-6:添加group和文件


添加文件包含的路径:

7-设置添加路径.jpg

图2-7:添加文件路径

8-设置调试.jpg

图2-8:设置调试


编译,下载即可,然后reset即可看到LED闪烁

9-下载成功.jpg

图2-9下载成功

全部评论 ()

创建讨论帖子

登录 后参与评论
系统提示