HC-SR501热释电红外传感器驱动(STM32)

一、前期准备
单片机:STM32F103ZET6
开发环境:MDK5.14
库函数:标准库V3.5
HC-SR501热释电红外传感器模块:淘宝有售
HC-SR501热释电红外传感器驱动(STM32)_第1张图片
二、实验效果
在这里插入图片描述
在这里插入图片描述

三、驱动原理
这个模块比较简单,当有人靠近时候其IO输出3.3V,STM32可以直接采集。
需要完整工程或者有问题的请加QQ:1002521871,验证:呵呵。

四、驱动代码
HC_SR501.h

#ifndef __HC_SR501_H__
#define	__HC_SR501_H__
#include "stm32f10x.h"
#include "gpio.h"
#include "delay.h"


#define			HC_SR501			PAin(0)
#define			HC_SR501_Pin		GPIO_Pin_0
#define    	 	HC_SR50PORT         GPIOA
#define     	HC_SR50CLKLINE      RCC_APB2Periph_GPIOA


extern void HC_SR501Configuration(void);
extern FunctionalState HC_SR501_Status(void);
#endif

HC_SR501.c

#include "hc_sr501.h"

void HC_SR501Configuration(void)
{
	GPIO_InitTypeDef    GPIO;
    
    //Enable APB2 Bus
    RCC_APB2PeriphClockCmd(HC_SR50CLKLINE, ENABLE);
    
    //Register IO 
    GPIO.GPIO_Pin   = HC_SR501_Pin;
    GPIO.GPIO_Mode  = GPIO_Mode_IPD;
    GPIO_Init(HC_SR50PORT, &GPIO);
}

FunctionalState HC_SR501_Status(void)
{
	if (HC_SR501 == 1)
	{
		return ENABLE;
	}
	else
	{
		return DISABLE;
	}
}	

由于作者能力有限,有不妥之处欢迎指正,邮箱[email protected]

你可能感兴趣的:(嵌入式常用模块驱动)