创建sjake.c文件
1.打开时钟(打开时钟是开启APB2里面的东西)
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE );
2.配置IO结构体
GPIO_InitTypeDef shake_init;
配置结构体参数:
shake_init.GPIO_Pin = GPIO_Pin_1; //配置引脚A1(连接哪个写哪个)
shake_init.GPIO_Speed = GPIO_Speed_10MHz; //配置输入速度
shake_init.GPIO_Mode = GPIO_Mode_IPD; //配置输入模式 这里是下拉输入模式 默认为低电平
3.初始化结构体函数(因为GPIO_InitTypeDef shake_init; 这个包含在下面函数内)
GPIO_Init(GPIOA, &shake_init);
到此 我们shake就写完了,然后去主函数进行调用
接下来我在main函数进行调用
1.调用函数 Shake_Init();(注意需要包含shake头文件)
2.以防万一 灯是亮的,所以我们初始就让灯是灭的,GPIO_SetBits(GPIOA, GPIO_Pin_1); 高电平灯灭。
3.在while循环内配置GPIO函数
if( GPIO_ReadInputDataBit( GPIOA, GPIO_Pin_1)==0){ //此函数意思为 判断GPIOA1引脚 为0 也就是说是否为低电平
GPIO_ResetBits(GPIOA, GPIO_Pin_1); //如果是低电平 灯就亮
delay(1000); //此处为延时一秒钟
GPIO_SetBits(GPIOA, GPIO_Pin_1); //亮一秒钟后再次输入高电平,灯灭
}else{
GPIO_SetBits(GPIOA, GPIO_Pin_1); //这是否则,判断上边不等于0的话 输出高电平 直接灯灭
}