4回答

0收藏

[原创] 2、GD32学习--demo

GD32 GD32 5011 人阅读 | 4 人回复 | 2015-06-27

本帖最后由 liunian__92 于 2015-6-27 19:04 编辑






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

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


图2-1:Example路径


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



图2-2:修改


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


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

图2-3:固件库内容




图2-4:新建demo




图2-5:选择器件


Demo下新建usr文件夹,,然后新建一个main.c的文件,放入以下内容。
  1. #include "gd32f1x0.h"
  2. #include "gd32f1x0_gpio.h"
  3. #include "gd32f1x0_rcc.h"

  4. #define LED_ON  (1)
  5. #define LED_OFF (0)
  6. #define LED1    (1)
  7. #define LED2    (2)
  8. #define LED3    (3)
  9. #define LEDALL  (5)

  10. void EVB_LEDConfig(void)
  11. {
  12.     GPIO_InitPara GPIO_InitStructure;

  13.     RCC_AHBPeriphClock_Enable(RCC_AHBPERIPH_GPIOC,ENABLE);

  14.     GPIO_InitStructure.GPIO_Pin = GPIO_PIN_10|GPIO_PIN_11;
  15.     GPIO_InitStructure.GPIO_Mode = GPIO_MODE_OUT;
  16.     GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ;
  17.     GPIO_InitStructure.GPIO_OType = GPIO_OTYPE_PP;
  18.     GPIO_InitStructure.GPIO_PuPd = GPIO_PUPD_NOPULL;
  19.     GPIO_Init(GPIOC,&GPIO_InitStructure);

  20.     GPIO_ResetBits(GPIOC,GPIO_PIN_10|GPIO_PIN_11);
  21. }



  22. void EVB_LEDControl(int index, int cmd)
  23. {
  24.     switch (index)
  25.     {
  26.         case LED1:
  27.         {
  28.             if (cmd == LED_ON)
  29.             {
  30.                 GPIO_SetBits(GPIOC,GPIO_PIN_10);  
  31.             }
  32.             else
  33.             {
  34.                 GPIO_ResetBits(GPIOC,GPIO_PIN_10);
  35.             }
  36.             break;
  37.         }
  38.         case LED2:
  39.         {
  40.             if (cmd == LED_ON)
  41.             {
  42.                 GPIO_SetBits(GPIOC,GPIO_PIN_11);  
  43.             }
  44.             else
  45.             {
  46.                 GPIO_ResetBits(GPIOC,GPIO_PIN_11);
  47.             }
  48.             break;
  49.         }
  50.         default:
  51.         {
  52.             if (cmd == LED_ON)
  53.             {
  54.                 GPIO_ResetBits(GPIOC,GPIO_PIN_10|GPIO_PIN_11);

  55.             }
  56.             else
  57.             {
  58.                 GPIO_ResetBits(GPIOC,GPIO_PIN_10|GPIO_PIN_11);
  59.             }
  60.             break;
  61.         }
  62.     }
  63. }



  64. int main(void)
  65. {
  66.     int i;

  67.     EVB_LEDConfig();
  68.           EVB_LEDControl(LED2, LED_OFF);
  69.           EVB_LEDControl(LED1, LED_OFF);
  70.     while(1)
  71.     {
  72.         for (i = 0; i< 0x0fffff; i++);
  73.                                         EVB_LEDControl(LED2, LED_ON);
  74.         
  75.         for (i = 0; i< 0x0fffff; i++);
  76.                                         EVB_LEDControl(LED2, LED_OFF);
  77.     }
  78. }
复制代码



添加group 添加文件如下:


图2-6:添加group和文件




添加文件包含的路径:


图2-7:添加文件路径




图2-8:设置调试




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



图2-9下载成功



分享到:
回复

使用道具 举报

回答|共 4 个

倒序浏览

沙发

trochili

发表于 2015-6-27 22:37:50 | 只看该作者

不错不错,可以当教程了
eeboard大力支持的开源RTOS -- Trochili RTOS
板凳

liunian__92

发表于 2015-6-27 22:50:45 | 只看该作者

trochili 发表于 2015-6-27 22:37
不错不错,可以当教程了

地板

haothree

发表于 2015-6-29 09:50:33 | 只看该作者

不错的教程,再接再厉啊
5#

liunian__92

发表于 2015-6-29 17:07:51 | 只看该作者

haothree 发表于 2015-6-29 09:50
不错的教程,再接再厉啊

:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条