学习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); 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值