功能特点
a、 超小体积,灵敏度高,可靠性强,超低电压工作模式。
b、抗干扰性增强,内部采用数字信号处理,直接高低电平输出。
c、 全自动感应:人进入其感应范围则输出高电平,人离开感应范围则自动延时关闭高电平,输出低电平。
d、可重复触发方式:即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后延时,才变为低电平(即:感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。
模块的VOUT脚输出的是开关量,有人接近感应模块时,输出高电平,人离开后恢复成低电平。所以,可接单片机的任何一个IO脚都行,可采用查询法,查询所接引脚的状态,就知道VOUT脚是高电,还是低电平,从而判是否有人接近了。
程序
main函数
#include "stm32f10x.h" // Ï൱ÓÚ51µ¥Æ¬»úÖÐµÄ #include <reg51.h>
#include "usart.h"
#include "bsp\_hc\_sr501.h"
#include "bsp\_led.h"
#include "bsp\_systick.h"
//¶¨ÒåÒ»¸öÈ«¾Ö±äÁ¿a£¬½«#include "stm32f10x\_it.h"ÖеIJÎÊý´«Èë
extern int a;
int main(void)
{
// À´µ½ÕâÀïµÄʱºò£¬ÏµÍ³µÄʱÖÓÒѾ±»ÅäÖóÉ72M¡£
USART\_Config();
LED\_GPIO\_Config();
EXTI\_SR501\_Config();
printf("»¶ÓʹÓÃÈËÌå¸ÐӦģ¿é\n");
while(1)
{
printf("³É¹¦\n");
SysTick\_Delay\_ms(1000);
}
}
.c
#include "bsp\_hc\_sr501.h"
#include "usart.h"
static void NVIC\_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
/\* ÅäÖÃNVICΪÓÅÏȼ¶×é1 \*/
NVIC\_PriorityGroupConfig(NVIC_PriorityGroup_1);
/\* ÅäÖÃÖжÏÔ´£º°´¼ü1 \*/
NVIC_InitStructure.NVIC_IRQChannel = SR501_OUT_EXTI_IRQ;
/\* ÅäÖÃÇÀÕ¼ÓÅÏȼ¶ \*/
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
/\* ÅäÖÃ×ÓÓÅÏȼ¶ \*/
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
/\* ʹÄÜÖжÏͨµÀ \*/
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC\_Init(&NVIC_InitStructure);
}
void EXTI\_SR501\_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
/\*¿ªÆô°´¼üGPIO¿ÚµÄʱÖÓ\*/
RCC\_APB2PeriphClockCmd(SR501_OUT_GPIO_CLK,ENABLE);
/\* ÅäÖà NVIC ÖжÏ\*/
NVIC\_Configuration();
/\*--------------------------GPIOÅäÖÃ-----------------------------\*/
/\* Ñ¡Ôñ°´¼üÓõ½µÄGPIO \*/
GPIO_InitStructure.GPIO_Pin = SR501_OUT_GPIO_PIN;
/\* ÅäÖÃΪ¸¡¿ÕÊäÈë \*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD ;
GPIO\_Init(SR501_OUT_GPIO_PORT, &GPIO_InitStructure);
/\* Ñ¡ÔñEXTIµÄÐźÅÔ´ \*/
GPIO\_EXTILineConfig(SR501_OUT_EXTI_PORTSOURCE, SR501_OUT_EXTI_PINSOURCE);
EXTI_InitStructure.EXTI_Line = SR501_OUT_EXTI_LINE;
/\* EXTIΪÖжÏģʽ \*/
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
/\* ÉÏÉýÑØÖÐ¶Ï \*/
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
/\* ʹÄÜÖÐ¶Ï \*/
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI\_Init(&EXTI_InitStructure);
}
.h文件
#ifndef \_\_BSPHC\_SR501\_H
#define \_\_BSPHC\_SR501\_H
#include "stm32f10x.h"
## 最后
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**
**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/53ad11ac2ea9a80c818e44c5771e3fe8.png)
![img](https://img-blog.csdnimg.cn/img_convert/cc26c2a6c3c01802b5bad716925311c6.jpeg)
![img](https://img-blog.csdnimg.cn/img_convert/0fb4d851e79940472b3457f8531afb5c.png)
![img](https://img-blog.csdnimg.cn/img_convert/4a54d94ba32a0b01a31d4b778b464359.png)
![img](https://img-blog.csdnimg.cn/img_convert/f199adfe1674db8f6f3e0a147cc28480.png)
![img](https://img-blog.csdnimg.cn/img_convert/3a4b17addb2f9971702d40d7ca0ff718.png)
![](https://img-blog.csdnimg.cn/img_convert/19f886df2252d9f93ad726e21a36bc3e.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!