打印

GD32F103E EVAL新版库流水灯例程

[复制链接]
1167|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sunmeat|  楼主 | 2015-5-27 13:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
/**
  ******************************************************************************
  * [url=home.php?mod=space&uid=288409]@file[/url]    GPIO/GPIO_Toggle/main.c
  * [url=home.php?mod=space&uid=187600]@author[/url]  MCU SD
  * [url=home.php?mod=space&uid=895143]@version[/url] V1.0
  * [url=home.php?mod=space&uid=212281]@date[/url]    26-Dec-2014
  * [url=home.php?mod=space&uid=247401]@brief[/url]   The main function file
  ******************************************************************************
  */

/* Includes ------------------------------------------------------------------*/
#include "gd32f10x.h"
#include <stdio.h>
#include "systick.h"

/* Private functions ---------------------------------------------------------*/
#define LED1(a) if (a)  \
                    GPIO_SetBits(GPIOF,GPIO_PIN_0);\
                    else    \
                    GPIO_ResetBits(GPIOF,GPIO_PIN_0)

#define LED2(a) if (a)  \
                    GPIO_SetBits(GPIOF,GPIO_PIN_1);\
                    else    \
                    GPIO_ResetBits(GPIOF,GPIO_PIN_1)

#define LED3(a) if (a)  \
                    GPIO_SetBits(GPIOF,GPIO_PIN_2);\
                    else    \
                    GPIO_ResetBits(GPIOF,GPIO_PIN_2)

#define LED4(a) if (a)  \
                    GPIO_SetBits(GPIOF,GPIO_PIN_3);\
                    else    \
                    GPIO_ResetBits(GPIOF,GPIO_PIN_3)

/* Private variables ---------------------------------------------------------*/
static vu32 TimingDelay = 0;

/**
  * @brief  Configure the GPIO ports
  * @param  None
  * @retval None
  */
void GPIO_Configuration(void)
{   
    GPIO_InitPara GPIO_InitStructure;
    RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_GPIOF,ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3;
    GPIO_InitStructure.GPIO_Mode = GPIO_MODE_OUT_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ;
    GPIO_Init(GPIOF,&GPIO_InitStructure);
}

/**
  * @brief  Delay time
  * @param  data: The size of the delay time
  * @retval None
  */
void Delay(uint32_t data)
{
    TimingDelay = data;
    while(TimingDelay != 0)
    {
    }
}


/**
  * @brief  Decrements the TimingDelay variable
  * @param  None
  * @retval None
  */
void Decrement_TimingDelay(void)
{
    if (TimingDelay != 0x00)
    {
        TimingDelay--;
    }
}

/**
  * @brief  Main program
  * @param  None
  * @retval None
  */
int main(void)
{
    GPIO_Configuration();
    SysTick_Configuration();

    while (1)
    {
        LED1(1);
        LED2(1);
        LED3(1);
        LED4(1);
        Delay(1000);

        LED1(0);
        LED2(0);
        LED3(0);
        LED4(0);
        Delay(1000);

        LED1(1);
        LED4(0);
        Delay(1000);

        LED2(1);
        LED1(0);
        Delay(1000);

        LED3(1);
        LED2(0);
        Delay(1000);

        LED4(1);
        LED3(0);
        Delay(1000);
    }
}

/******************* (C) COPYRIGHT 2014 GIGADEVICE *****END OF FILE****/


沙发
sunmeat|  楼主 | 2015-5-27 13:49 | 只看该作者
工程包打包下载
GPIO-流水灯的前后今生.rar (4.04 MB)

使用特权

评论回复
板凳
sunmeat|  楼主 | 2015-5-27 13:51 | 只看该作者
LED电路的原理图如下:

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
Thefantasy + 3
地板
firstblood| | 2015-6-11 19:19 | 只看该作者
这个就是给个高电平的,LED指示灯会点亮的。

使用特权

评论回复
5
angerbird| | 2015-6-15 21:14 | 只看该作者
流水灯的控制是非常简单的,但是一般的学习都必须从这个开始的。

使用特权

评论回复
6
Thefantasy| | 2015-6-16 09:24 | 只看该作者
看看楼主的框架,省的我自己搭个模板出来。支持下。

使用特权

评论回复
7
smilingangel| | 2015-6-16 19:36 | 只看该作者
这个例程还不是很复杂的啊。。支持下。

使用特权

评论回复
8
baimiaocun2015| | 2015-6-17 21:45 | 只看该作者
四个不同的led灯的控制亮灭的。

使用特权

评论回复
9
deliciouscook| | 2015-6-19 09:50 | 只看该作者
好像新版的例程,GPIO里面就是流水灯。

使用特权

评论回复
10
蜕变吧| | 2015-6-21 09:11 | 只看该作者
程序中用到了两个延时,第一个延时是用到了滴答定时器么?第二个延时的作用是什么呢?

使用特权

评论回复
11
sunmeat|  楼主 | 2015-6-26 09:19 | 只看该作者
蜕变吧 发表于 2015-6-21 09:11
程序中用到了两个延时,第一个延时是用到了滴答定时器么?第二个延时的作用是什么呢? ...

我直接在官方例程修改的,还真没注意到这个问题

使用特权

评论回复
12
冰河w| | 2015-7-3 20:36 | 只看该作者
流水灯和矩阵按键是了解芯片IO口快速方法

使用特权

评论回复
13
vivilzb1985| | 2015-7-11 10:13 | 只看该作者
这个实例的不是很复杂的啊,一般的控制学习都是从这个开始的。

使用特权

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

本版积分规则

208

主题

2132

帖子

13

粉丝