学习stm32实现震动传感器点灯

创建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); 

学习stm32实现震动传感器点灯_第1张图片

到此 我们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的话                                                                                                      输出高电平    直接灯灭
         
         }

你可能感兴趣的:(学习,stm32,嵌入式硬件)