您的位置:控制工程论坛网论坛 » 嵌入式系统 » STM32 LED流水灯

xilinxue

xilinxue   |   当前状态:在线

总积分:16186  2025年可用积分:0

注册时间: 2008-06-26

最后登录时间: 2020-03-22

空间 发短消息加为好友

STM32 LED流水灯

xilinxue  发表于 2009/7/3 14:33:12      2001 查看 1 回复  [上一主题]  [下一主题]

手机阅读

用的是英培特的EMSTM32V1学习板,按下按键后开是流水灯显示,很简单不过以前没接触过ARM还是费了好大劲!

/************************************************************************
     Copyright (c) 2008 wormchen             
     All rights reserved             
文 件 名: main.c              
说    明: 流水灯 按下Key键开始LED1 -LED4流水显示          
主要硬件: EMSTM32V1+miniSTMV100(内部8MRC)        
编译环境: MDK3.10                      
************************************************************************/ 
 
#include

GPIO_InitTypeDef GPIO_InitStructure; //GPIO初始化结构体

/*****************************************************
函数: void Delay(vu32 nCount)
参数: vu32 nCount 延时时间
描述: 延时指定时间
返回: 无
******************************************************/
void Delay(vu32 nCount)
{
  for(; nCount != 0; nCount--);
}
int main(void)
{
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//使能GPIOC时钟
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9;
 //选择引脚6,7,8,9
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //带上拉输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //输出频率最大50M
 GPIO_Init(GPIOC, &GPIO_InitStructure); //初始化PC6,7,8,9引脚
  
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//使能GPIOB时钟  
 GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_9; //选择引脚9
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮点输入
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //输入频率最大50M
 GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化PB9引脚

 while(1)
  {
   if(!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_9))//如果按下Key开始流水
    {
     while(1)
     {
      GPIO_SetBits(GPIOC, GPIO_Pin_6);//点亮LED1
      Delay(0x1ffff); //延时
      GPIO_ResetBits(GPIOC, GPIO_Pin_6);//关闭LED1
  
      GPIO_SetBits(GPIOC, GPIO_Pin_7);//点亮LED2
      Delay(0x1ffff); //延时
      GPIO_ResetBits(GPIOC, GPIO_Pin_7);//关闭LED2

      GPIO_SetBits(GPIOC, GPIO_Pin_8);//点亮LED3
      Delay(0x1ffff); //延时
      GPIO_ResetBits(GPIOC, GPIO_Pin_8);//关闭LED3

      GPIO_SetBits(GPIOC, GPIO_Pin_9);//点亮LED4
      Delay(0x1ffff); //延时
      GPIO_ResetBits(GPIOC, GPIO_Pin_9);//关闭LED4

      GPIO_SetBits(GPIOC, GPIO_Pin_8);//点亮LED3
      Delay(0x1ffff); //延时
      GPIO_ResetBits(GPIOC, GPIO_Pin_8);//关闭LED3
      
      GPIO_SetBits(GPIOC, GPIO_Pin_7);//点亮LED2
      Delay(0x1ffff); //延时
      GPIO_ResetBits(GPIOC, GPIO_Pin_7);//关闭LED2

     }
   
    }
  }

}

工程项目rar

1楼 0 0 回复
  • sdjntl

    sdjntl   |   当前状态:在线

    总积分:1242  2025年可用积分:0

    注册时间: 2009-06-25

    最后登录时间: 2019-07-01

    空间 发短消息加为好友

    sdjntl   发表于 2009/7/3 14:33:12

    谢谢了.
    2楼 回复本楼

    引用 sdjntl 2009/7/3 14:33:12 发表于2楼的内容

总共 , 当前 /