STM振动传感器控制继电器
文章目录
- STM32——震动传感器控制继电器开灯
-
- 环境概述:
- 硬件清单:
- 注意:
- 1、使能APB2中的GPIOA时钟打开
- 2、配置GPIOA结构体内容
- 3、初始化
- 代码:
- main.c文件
- 代码:
- 总结:
环境概述:
Windows10 专业版
MDK—Lite 5.25
硬件清单:
1、继电器
2、USB灯
3、SW-1801P震动传感器
4、STM32f103c8t6
注意:
在User创建相关文件夹的文件夹xx.c和xx.h包括相关头文件的文件,
前一篇文章写了一些基本操作
实验步骤:
1、使能APB2中的GPIOA时钟打开
去哪里找相关函数,也写在前一篇文章里
//1、使能APB2中的GPIOA时钟打开 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE);
2、配置GPIOA结构体内容
在此之前,定义结构体
GPIO_InitTypeDef Shake_GPIO_Init;
//下拉输入Shake_GPIO_Init.GPIO_Mode = GPIO_Mode_IPD;//设置引脚为A1Shake_GPIO_Init.GPIO_Pin = GPIO_Pin_1;Shake_GPIO_Init.GPIO_Speed = GPIO_Speed_10MHz;
3、初始化
GPIO_Init(GPIOA,&Shake_GPIO_Init);
代码:
#include "stm32f10x.h"#include "shake.h"void Shake_Init(){ //定义结构 GPIO_InitTypeDef Shake_GPIO_Init; //1、使能APB2中的GPIOA时钟打开 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE); //2、配置GPIOA结构体内容 //下拉输入 Shake_GPIO_Init.GPIO_Mode = GPIO_Mode_IPD; //设置引脚为A1 Shake_GPIO_Init.GPIO_Pin = GPIO_Pin_1; Shake_GPIO_Init.GPIO_Speed = GPIO_Speed_10MHz; GPIO_Init(GPIOA,&Shake_GPIO_Init); }
main.c文件
通过读取传感器的电平的高低,去判断并控制开灯
如果读取传感器是低电平,那么就实行开灯操作
代码:
#include "stm32f10x.h"#include "led.h"#include "Relay.h"#include "Shake.h"int main(void){
LED_Init();//灯 Relay_Init();//继电器 Shake_Init();//震动传感器 GPIO_SetBits(GPIOA, GPIO_Pin_3);//是引脚3j继电器高电平——关灯 while(1){
//1、通过读取传感器的电平的高低,去判断并控制开灯 // if(GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_1 == 0)){
//如果读取传感器是低电平,那么就实行开灯操作 GPIO_ResetBits(GPIOA, GPIO_Pin_3);//开灯 delayTime(1000);//延时 GPIO_SetBits(GPIOA, GPIO_Pin_3);//关灯 }else{
GPIO_SetBits(GPIOA, GPIO_Pin_3);//关灯 } }}
总结:
反复练习,记住代码,记住原理,多实操。