STM32F10x利用固件库实现流水灯

PC口8 ~ 15脚,控制LED灯L1 ~ L8,实现流水效果。

void GPIO_Configi() //管脚功能定义
{
	GPIO_InitTypeDef  GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能GPIOB时钟
	GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);			//引脚配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   	//配置为推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   //GPIOB速度为50MHz
	GPIO_Init(GPIOC, &GPIO_InitStructure);				//初始化
}

利用Switch语句实现:

//Main Body
int main(void)
{
	GPIO_Configi();
	while(1)
	{
		unsigned int i;

		GPIO_SetBits(GPIOC,GPIO_Pin_All);
		for(i = 0; i < 9;i++)
		{
			Delay(1000);
			switch(i)
			{
				case 0:GPIO_ResetBits(GPIOC,GPIO_Pin_8);break;
				case 1:GPIO_SetBits(GPIOC,GPIO_Pin_8);GPIO_ResetBits(GPIOC,GPIO_Pin_9);break;
				case 2:GPIO_SetBits(GPIOC,GPIO_Pin_9);GPIO_ResetBits(GPIOC,GPIO_Pin_10);break;
				case 3:GPIO_SetBits(GPIOC,GPIO_Pin_10);GPIO_ResetBits(GPIOC,GPIO_Pin_11);break;
				case 4:GPIO_SetBits(GPIOC,GPIO_Pin_11);GPIO_ResetBits(GPIOC,GPIO_Pin_12);break;
				case 5:GPIO_SetBits(GPIOC,GPIO_Pin_12);GPIO_ResetBits(GPIOC,GPIO_Pin_13);break;
				case 6:GPIO_SetBits(GPIOC,GPIO_Pin_13);GPIO_ResetBits(GPIOC,GPIO_Pin_14);break;
				case 7:GPIO_SetBits(GPIOC,GPIO_Pin_14);GPIO_ResetBits(GPIOC,GPIO_Pin_15);break;
				default :
				      GPIO_SetBits(GPIOC,GPIO_Pin_All);
			}
			
		}
	
			
	}
	
}

你可能感兴趣的:(STM32,stm32,单片机,arm)