一、前期准备
单片机:STM32F103ZET6
开发环境:MDK5.14
库函数:标准库V3.5
HC-SR501热释电红外传感器模块:淘宝有售
二、实验效果
三、驱动原理
这个模块比较简单,当有人靠近时候其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;
}
}
由于作者能力有限,有不妥之处欢迎指正,邮箱alex_hua@foxmail.com