GD32F103E EVAL新版库流水灯例程

[复制链接]
 楼主| sunmeat 发表于 2015-5-27 13:33 | 显示全部楼层 |阅读模式
  1. /**
  2.   ******************************************************************************
  3.   * [url=home.php?mod=space&uid=288409]@file[/url]    GPIO/GPIO_Toggle/main.c
  4.   * [url=home.php?mod=space&uid=187600]@author[/url]  MCU SD
  5.   * [url=home.php?mod=space&uid=895143]@version[/url] V1.0
  6.   * [url=home.php?mod=space&uid=212281]@date[/url]    26-Dec-2014
  7.   * [url=home.php?mod=space&uid=247401]@brief[/url]   The main function file
  8.   ******************************************************************************
  9.   */

  10. /* Includes ------------------------------------------------------------------*/
  11. #include "gd32f10x.h"
  12. #include <stdio.h>
  13. #include "systick.h"

  14. /* Private functions ---------------------------------------------------------*/
  15. #define LED1(a) if (a)  \
  16.                     GPIO_SetBits(GPIOF,GPIO_PIN_0);\
  17.                     else    \
  18.                     GPIO_ResetBits(GPIOF,GPIO_PIN_0)

  19. #define LED2(a) if (a)  \
  20.                     GPIO_SetBits(GPIOF,GPIO_PIN_1);\
  21.                     else    \
  22.                     GPIO_ResetBits(GPIOF,GPIO_PIN_1)

  23. #define LED3(a) if (a)  \
  24.                     GPIO_SetBits(GPIOF,GPIO_PIN_2);\
  25.                     else    \
  26.                     GPIO_ResetBits(GPIOF,GPIO_PIN_2)

  27. #define LED4(a) if (a)  \
  28.                     GPIO_SetBits(GPIOF,GPIO_PIN_3);\
  29.                     else    \
  30.                     GPIO_ResetBits(GPIOF,GPIO_PIN_3)

  31. /* Private variables ---------------------------------------------------------*/
  32. static vu32 TimingDelay = 0;

  33. /**
  34.   * @brief  Configure the GPIO ports
  35.   * @param  None
  36.   * @retval None
  37.   */
  38. void GPIO_Configuration(void)
  39. {   
  40.     GPIO_InitPara GPIO_InitStructure;
  41.     RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_GPIOF,ENABLE);

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

  47. /**
  48.   * @brief  Delay time
  49.   * @param  data: The size of the delay time
  50.   * @retval None
  51.   */
  52. void Delay(uint32_t data)
  53. {
  54.     TimingDelay = data;
  55.     while(TimingDelay != 0)
  56.     {
  57.     }
  58. }


  59. /**
  60.   * @brief  Decrements the TimingDelay variable
  61.   * @param  None
  62.   * @retval None
  63.   */
  64. void Decrement_TimingDelay(void)
  65. {
  66.     if (TimingDelay != 0x00)
  67.     {
  68.         TimingDelay--;
  69.     }
  70. }

  71. /**
  72.   * @brief  Main program
  73.   * @param  None
  74.   * @retval None
  75.   */
  76. int main(void)
  77. {
  78.     GPIO_Configuration();
  79.     SysTick_Configuration();

  80.     while (1)
  81.     {
  82.         LED1(1);
  83.         LED2(1);
  84.         LED3(1);
  85.         LED4(1);
  86.         Delay(1000);

  87.         LED1(0);
  88.         LED2(0);
  89.         LED3(0);
  90.         LED4(0);
  91.         Delay(1000);

  92.         LED1(1);
  93.         LED4(0);
  94.         Delay(1000);

  95.         LED2(1);
  96.         LED1(0);
  97.         Delay(1000);

  98.         LED3(1);
  99.         LED2(0);
  100.         Delay(1000);

  101.         LED4(1);
  102.         LED3(0);
  103.         Delay(1000);
  104.     }
  105. }

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


 楼主| sunmeat 发表于 2015-5-27 13:49 | 显示全部楼层
工程包打包下载
GPIO-流水灯的前后今生.rar (4.04 MB, 下载次数: 835)
 楼主| sunmeat 发表于 2015-5-27 13:51 | 显示全部楼层
LED电路的原理图如下:
QQ截图20150527135034.png

评分

参与人数 1威望 +3 收起 理由
Thefantasy + 3

查看全部评分

firstblood 发表于 2015-6-11 19:19 | 显示全部楼层
这个就是给个高电平的,LED指示灯会点亮的。
angerbird 发表于 2015-6-15 21:14 | 显示全部楼层
流水灯的控制是非常简单的,但是一般的学习都必须从这个开始的。
Thefantasy 发表于 2015-6-16 09:24 | 显示全部楼层
看看楼主的框架,省的我自己搭个模板出来。支持下。
smilingangel 发表于 2015-6-16 19:36 | 显示全部楼层
这个例程还不是很复杂的啊。。支持下。
baimiaocun2015 发表于 2015-6-17 21:45 | 显示全部楼层
四个不同的led灯的控制亮灭的。
deliciouscook 发表于 2015-6-19 09:50 | 显示全部楼层
好像新版的例程,GPIO里面就是流水灯。
蜕变吧 发表于 2015-6-21 09:11 | 显示全部楼层
程序中用到了两个延时,第一个延时是用到了滴答定时器么?第二个延时的作用是什么呢?
 楼主| sunmeat 发表于 2015-6-26 09:19 | 显示全部楼层
蜕变吧 发表于 2015-6-21 09:11
程序中用到了两个延时,第一个延时是用到了滴答定时器么?第二个延时的作用是什么呢? ...

我直接在官方例程修改的,还真没注意到这个问题
冰河w 发表于 2015-7-3 20:36 | 显示全部楼层
流水灯和矩阵按键是了解芯片IO口快速方法
vivilzb1985 发表于 2015-7-11 10:13 | 显示全部楼层
这个实例的不是很复杂的啊,一般的控制学习都是从这个开始的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

208

主题

2132

帖子

13

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

208

主题

2132

帖子

13

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