这是最后的实验现象,有人走过会一直输出有人,离开范围时则输出没人

开发板 PZ6086L ,HC_SR501模块

这是HC_SR501的示意图,,VCC和GND不再多做介绍,5V供电就行,

OUT接口,我接的时PA0,因为需要将该引脚配置为下拉输入模式才能正常使用

而我的开发板对应的需要PA0引脚

通过该模块的说明书,并不需要特殊的参数配置,

函数部分

HC_SR501配置函数

先是头文件,

#define HC_SR501 PAI(0)   PAI(0)是位绑定,方便操作用的,

void HC_SR(void);是HC_SR501的PA0配置函数

u8 HC_SR501_Statue(void);是为了判断PA0输入状态,如果被拉高了,说明有人进入了

void HC_SR(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA ,ENABLE);//打开GPIOA时钟

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;//选中0引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;//配置为下拉输入模式
GPIO_Init(GPIOA, &GPIO_InitStructure);
}

u8 HC_SR501_Statue(void)
{
  if(PAI(0)==1)//如果GPIOA_0 引脚输入高电平,代表有人,返回1
  {
    return 1;
  }
  return 0;//没人就返回0
}

部分主函数

int main(void)
{
delay_init(72); //滴答计时器配置函数
RCC_Configuration();//时钟配置
GPIO_Configuration();//GPIO配置
HC_SR();//HC_SR501引脚配置
USART1_Configuration();//串口配置函数

while(1)
{
GPIO_ResetBits(GPIOC,GPIO_Pin_0);//证明系统成功进入该循环

if(HC_SR501_Statue()==1)//如果返回状态为1 ,则该判断语句成立,输出有人
  {
  printf("有人\r\n");
  }
  else printf("没人\r\n");
  delay_ms(500); //防止输出太过频繁
}
}

以下是我的工程文件

包含全部程序,以及我使用的调试文件,HC_SR501模块手册,百度网盘 ,密码    lc5w

https://pan.baidu.com/s/1ALapR-4hFrfTKfuLVKRqqg

欢迎沟通交流,我们一起进步

基于STM32F103ZET6 HC_SR501人体红外感应的更多相关文章

  1. rfid 门卡系统和人体红外感应开发

    今天忙了一天了,因为毕昇杯我发现如果不加把劲,可能寒假之前代码搞不出了,今天突击了两个模块,一个人体感应模块,和rfid刷卡模块,这两个模块谈不上自己编写代码,今天的任务也仅仅是看懂了代码,现在我总结 ...

  2. TC301A芯片做的一种人体接近感应方案

    基于TC301A芯片做的一种人体接近感应方案,此方案的原理是通过检测电容的变化量来检测人体的有无,此方案设计原理简单,使用方便,容易操作,成本较低.设计方案如下:可根据原理图做pcb板子,如图芯片的五 ...

  3. 基于51,人体红外感应和RC522的门禁系统

    总结一下最近学的东西,这两天学的东西,rfid门卡系统终于弄出来来了,这个程序算现在写过的比较满意的程序,大家可以参考参考 主函数: #include<reg52.h> #include& ...

  4. Homekit_温湿度_人体红外_光强_传感器

    市面上大多数,传感器产品多是简单的单个传感器进行售卖,这里我推荐一款四合一的产品,使用Homekit进行控制. 前置需求: 苹果手机一台 四合一传感器一个 USB数据线一根 介绍: 1.外观上是一个小 ...

  5. 基于RT-Thread的人体健康监测系统

    随着生活质量的提高和生活节奏的加快,人们愈加需要关注自己的健康状况,本项目意在设计一种基于云平台+APP+设备端的身体参数测试系统,利用脉搏传感器.红外传感器.微弱信号检测电路等实现人体参数的采集,数 ...

  6. 新建基于STM32F103ZET6的工程-HAL库版本

    1.STM32F103ZET6简介 STM32F103ZET6的FLASH容量为512K,64K的SRAM.按照STM32芯片的容量产品划分,STM32F103ZET6属于大容量的芯片. 2.下载HA ...

  7. 基于Microchip单片机的触摸感应技术

    Microchip提供两种电容式触摸感应解决方案,一种为张驰振荡器方式,即通过检测触摸感应电容充放电的频率变化,来检测是否有键按下,根据单片机集成的硬件资源不同,另一种通过Microchip单片机集成 ...

  8. 基于stm32f103zet6的FAT16文件系统学习0(读SD卡扇区)

    SD卡已经看了两天了,主要是因为测试出来的卡容量不对,所以一直找原因,最终还是发现了,总比不过是单位上面出现了问题,或许是之前没有接触到SD的缘故吧,所以对其中的一些寄存器很不了解,一切都是重新开始, ...

  9. 基于STC89C52的oled红外遥控闹钟

    这个红外遥控主要是程序通过对按下的键的键码进行解析,并运行相应的功能代码 一次按键动作的遥控编码信息为 32 位串行二进制码.对于二进制信号“0”,一个脉冲占 1.2ms:对于二进制信号“1”,一个脉 ...

随机推荐

  1. My personal website:http://47.94.240.229:8080/yjh/project/

    My personal website:  http://47.94.240.229:8080/yjh/project/

  2. Xcode 下载地址 与Macos版本要求

    Xcode下载地址:https://developer.apple.com/download/more/ 参考文档:https://zh.wikipedia.org/wiki/Xcode

  3. Google的Python代码格式化工具YAPF详解

    平时习惯了杂乱无章地编写代码,而最后的代码勘定,却依赖于PyCharm自带的格式化工具,以及其自带的提示功能来规范代码.而pycharm里的格式化工具,不支持对多文件进行代码批量格式化,曾经尝试些解决 ...

  4. lisp base

    一 .quote lisp 使用s-expr表示数据和代码,通常会将第一项作为函数,而将后续元素当做参数传给第一项进行计算.可以通过quote来进行其他解析,quote可用(‘)表示: ( + 1 1 ...

  5. cascade属性

    cascade属性是设置级联操作的也就是在操作一端的数据如果影响到多端数据时会进行级联操作,一对一的时候直接写在标签上,其他的要写在set标签上 cascade="none|save-upd ...

  6. Mac下安装Spark

    1.Scala 官网下载scala安装包后解压,路径随意. 编辑/etc/bash_profile添加$SCALA_HOME并修改相应PATH 2.SSH无密码登陆 ssh-keygen -t rsa ...

  7. JavaScript事件的委派与事件的绑定

    事件的委派 在很多需求中,通常元素是动态创建添加到一个父元素中的,这时候我们点击新增的元素是没有反应的 <script type="text/javascript"> ...

  8. Mysql不带条件更新报错

    执行命令SET SQL_SAFE_UPDATES = 0;修改下数据库模式即可: 恢复安全模式:SET SQL_SAFE_UPDATES = 1;

  9. C/C++ 格式化读取和读取一行

    文件内容 23 21 4 1 1 0 114 1 1 1 8 112 5 0 0 0 114 1 0 0 0 115 52 4 1 0 1 134 4 0 1 12 131 4 1 1 0 133 5 ...

  10. lazysizes-好用的延迟加载JS插件

    此插件可直接引入lazysizes即可 <script src="lazysizes.min.js"></script> 延迟加载(lazy load)是( ...