#include <stm32f10x_lib.h>
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
} } }
}
|