日志档案

发表于 2008-3-19 16:48:19

0

标签: STM32  入门  

[原创]STM32学习笔记之入门 发帖庆贺LED流水灯

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

/************************************************************************
     Copyright (c) 2008 wormchen             
     All rights reserved             
文 件 名: main.c              
说    明: 流水灯 按下Key键开始LED1 -LED4流水显示          
主要硬件: EMSTM32V1+miniSTMV100(内部8MRC)        
编译环境: MDK3.10              
当前版本: 1.0               
作    者: 陈崇               
完成日期: 2008年3月19日16:05:39           
取代版本: 1.0               
原作  者: 陈崇              
完成日期: 2008年3月19日16:05:44          
************************************************************************/ 
 
#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

系统分类: ARM   |   用户分类: STM32   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(492)    回复(2)  

投一票您将和博主都有获奖机会!

最新评论

  • 李玉

    2008-4-2 10:57:19

    您好!在EDN上看到您正在用英蓓特的CORTEX-M3的开发板我们现在也正在用,我也是刚开始接触ARM对一些东西还不太懂,想请教您一个问题#define USART_IT_PE ((u16)0x0028) #define USART_IT_TXE ((u16)0x0727) #define USART_IT_TC ((u16)0x0626) #define USART_IT_RXNE ((u16)0x0525) #define USART_IT_IDLE ((u16)0x0424) #define USART_IT_LBD ((u16)0x0846) #define USART_IT_CTS ((u16)0x096A) #define USART_IT_ERR ((u16)0x0060) #define USART_IT_ORE ((u16)0x0360) #define USART_IT_NE ((u16)0x0260) #define USART_IT_FE ((u16)0x0160) 他给的例程中关于USART的这些中断都分别是在哪个寄存器中配置的呀,我是看不明白了!望前辈能赐教! 我的邮箱是0318lqx@163.com多谢了!

  • wangxing

    2008-8-25 8:28:25

    顶起!!! 我的是万利的那个板板哦!!