STM32:震动传感器点亮LED寄存器配置

目录

1、先创建LED、震动传感器、继电器的.c文件和.h文件于同一个文件夹

2、对3个.c文件进行寄存器模式的配置以及打开各自的GPIO时钟完成GPIO口的初始化

3、将3个.c文件对应的.h文件包含在main函数以及把各自的.h文件路径加入到main.c文件


1、创建led、振动传感器、继电器的.c和.h文件

 各自的文件夹底下创建.c和.h文件。

2、对GPIO口的初始化及时钟配置

拿振动传感器的举例:

先定义GPIO配置相关的结构体shake_init

 

接着GPIOA的时钟的使能在system_stm32f10x.c的rcc.h文件种找出

 然后对GPIO口的工作模式进行选择(pin、mode、speed)

其中工作模式选择下拉输入

 震动传感器没有震动时输出高电平、震动输出低电平,单片机需要检测到一个下降沿信号然后让继电器闭合点灯,所以选择下拉输入,因为下拉电阻的缘故可以确保单片机能够准确识别出低电平。

speed:选个低功耗的就行

 pin:接的哪个脚选哪个,这里接的是pin1

 3、main函数

#include "led.h"//led
#include "stm32f10x.h"
#include "relay.h"//继电器
#include "shake.h"//震动传感器

void delay(uint16_t time)
{
	uint16_t i= 0;
	while(time--)
	{
		i=12000;
		while(i--);
	}

}

int  main()
{

	LED_Init();//led函数初始化
	Relay_Init();//继电器初始化
	Shake_Init();//振动传感器初始化
	while(1)
	{
		if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1) == 0)//震动
		{
			GPIO_ResetBits(GPIOC,GPIO_Pin_13);//led点亮
			delay(1000);//1s

			GPIO_SetBits(GPIOC,GPIO_Pin_13);//led熄灭
		
		else
		{
			GPIO_SetBits(GPIOC,GPIO_Pin_13);//不震动保持熄灭

		}


	}

		 
   
}

3个.h文件均不在main.c文件所在路径,所以需要加入对应的路径才能找到.h文件

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值