/******** I/O口工作模式 ********/
typedef enum
{ GPIO_Mode_AIN = 0x0,
  GPIO_Mode_IN_FLOATING = 0x04,
  GPIO_Mode_IPD = 0x28,
  GPIO_Mode_IPU = 0x48,
  GPIO_Mode_Out_OD = 0x14,
  GPIO_Mode_Out_PP = 0x10,
  GPIO_Mode_AF_OD = 0x1C,
  GPIO_Mode_AF_PP = 0x18
}GPIOMode_TypeDef;

/******** 初始化 ********/
void LEDXH_Init(void)
{
 
 GPIO_InitTypeDef  GPIO_InitStructure;
 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);	 
	
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;	
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 
 GPIO_Init(GPIOB, &GPIO_InitStructure);					 
}
/******** GPIO_Pin_x和控制码之位操作思想 ********/
int main(void)
 {		
    LEDXH_Init();		  	
//  while(1){
//	temp=0x100;
//	for(i=0;i<4;i++){
//	    GPIO_Write(GPIOB,~temp);
//	    Delay(100);
//	    temp=temp<<1;
//	}
//  }
	    
    /********* GPIO_Pin_x操作 ********/
//  while(1){
//      GPIO_SetBits(GPIOB,GPIO_Pin_8|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11);
//	GPIO_ResetBits(GPIOB,GPIO_Pin_8);
//	Delay(100);
//	GPIO_SetBits(GPIOB,GPIO_Pin_8|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11);
//	GPIO_ResetBits(GPIOB,GPIO_Pin_9);
//	Delay(100);
//	GPIO_SetBits(GPIOB,GPIO_Pin_8|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11);
//	GPIO_ResetBits(GPIOB,GPIO_Pin_10);
//	Delay(100);
//	GPIO_SetBits(GPIOB,GPIO_Pin_8|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11);
//	GPIO_ResetBits(GPIOB,GPIO_Pin_11);
//	Delay(100);
//  } 

    /********* 控制码 ********/
    while(1){
	temp=0x0100;
	for(i=0;i<4;i++){
            GPIO_SetBits(GPIOB,0xFFFF);
	    GPIO_ResetBits(GPIOB,temp);
	    Delay(1000);
	    temp=temp<<1;
	}
    }
} 

版权声明:本文为RSheng16原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/RSheng16/p/12488754.html