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

2019-04-13 13:59发布

一、前期准备
单片机: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