震动感应灯

震动感应灯
在user文件夹添加shake文件夹添加shake.cshake.h文件//在shake.c #includesahke.h #includestm32f10x.h void Shake_Init(void) { }//在shake.h #includestm32f10x.h void Shake_Init(void);//在main.c里调用Shake_Init();并且添加对应头文件#includesahke.h,添加sahke.h的文件路径//在shake.c文件函数内补充 void Shake_Init(void) { GPIO_InitTypeDef shake_init;//初始化结构体 //打开GPIOA时钟(DO选择链接到A1引脚) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //配置结构体 shake_init.GPIO_ModeGPIO_Mode_IPD; shake_init.GPIO_PinGPIO_Mode_Pin_1; shake_init.GPIO_SpeedGPIO_Speed_10MHz; //初始化函数 GPIO_Init(GPIOA, shake_init); }/* GPIO_ReadInputDataBit(GPIOx, GPIO_Pin) 读某一位输入电平返回 0 或 1 GPIO_ReadInputData(GPIOx) 读整个端口的输入电平返回 16 位 GPIO_ReadOutputDataBit(GPIOx, GPIO_Pin) 读某一位输出寄存器的当前值 GPIO_ReadOutputData(GPIOx) 读整个端口输出寄存器的当前值 */ //在main.c #include stm32f10x.h #include led.h #include jidianqi.h #include shake.h void delay(uint16_t time) { uint16_t i 0; while(time--) { i12000; while(i--); } } int main() { LED_Init(); jidianqi_Init(); Shake_Init(); GPIO_SetBits(GPIOC,GPIO_Pin_13);//LED灯关闭 while(1) { if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1)0) GPIO_ResetBits(GPIOC,GPIO_Pin_13);//亮灯 delay(1000); //1秒 GPIO_SetBits(GPIOC,GPIO_Pin_13);//关灯 else { GPIO_SetBits(GPIOC,GPIO_Pin_13);//关灯 } } }