找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7037|回复: 9
打印 上一主题 下一主题
收起左侧

STM32系统操作HC-SR501人体红外模块源程序

  [复制链接]
跳转到指定楼层
楼主
ID:516571 发表于 2019-6-13 10:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32系统操作HC-SR501人体红外模块,并实现报警功能

单片机源程序如下:
  1. #include <stdio.h>
  2. #include <stm32f10x_lib.h>
  3. #include <stm32f10x_gpio.h>
  4. #include <stm32f10x_rcc.h>
  5. #include <delay_by_systick.h>
  6. #include <GPIOweibangding.h>
  7. #include <hc_sr501.h>
  8. #include <USART1_Configuration.h>
  9. #include <chushan.h>

  10. void RCC_Configuration(void);
  11. void GPIO_Configuration(void);

  12. int fputc(int ch,FILE *p)
  13.                 {
  14.                 USART_SendData(USART1,(u8)ch);
  15.                 while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);
  16.                 return ch;
  17.                 }

  18. int main(void)
  19. {
  20.         delay_init(72);        
  21.         RCC_Configuration();
  22.         GPIO_Configuration();
  23.         HC_SR();
  24.         USART1_Configuration();
  25.         
  26.         while(1)
  27.         {
  28.                 GPIO_ResetBits(GPIOC,GPIO_Pin_0);
  29.                 if(HC_SR501_Statue()==1)
  30.                 {
  31.                         printf("有人\r\n");
  32.                         chushan();

  33.                 }
  34.                 else
  35.                 {        
  36.                         printf("没人\r\n");
  37.                 }
  38.         }
  39. }

  40. void RCC_Configuration(void)
  41. {
  42.         //----------使用外部RC晶振-----------
  43.         RCC_DeInit();                        //初始化为缺省值
  44.         RCC_HSEConfig(RCC_HSE_ON);        //使能外部的高速时钟
  45.         while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);        //等待外部的高速时钟
  46.         
  47.         FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);        //Enable Prefetch Buffer
  48.         FLASH_SetLatency(FLASH_Latency_2);                //Flash 2 wait state
  49.         
  50.         RCC_HCLKConfig(RCC_SYSCLK_Div1);                //HCLK = SYSCLK
  51.         RCC_PCLK2Config(RCC_HCLK_Div1);                        //PCLK2 =  HCLK
  52.         RCC_PCLK1Config(RCC_HCLK_Div2);                        //PCLK1 = HCLK/2
  53.         RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);        //PLLCLK = 8MHZ * 9 =72MHZ
  54.         RCC_PLLCmd(ENABLE);                        //Enable PLLCLK

  55.         while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);        //Wait till PLLCLK is ready
  56.     RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);        //Select PLL as system clock
  57.         while(RCC_GetSYSCLKSource()!=0x08);                //Wait till PLL is used as system clock source
  58.         
  59.         //--------打开相应的外设时钟--------------------
  60.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);        //使能APB2外设的GPIOC的时钟         
  61.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);
  62. }

  63. void GPIO_Configuration(void)
  64. {
  65.         GPIO_InitTypeDef GPIO_InitStructure;
  66.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
  67.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  68.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  69.         GPIO_Init(GPIOC, &GPIO_InitStructure);
  70.         GPIO_SetBits(GPIOC,GPIO_Pin_0);

  71.                
  72.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
  73.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  74.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  75.         GPIO_Init(GPIOB, &GPIO_InitStructure);
  76. }
复制代码

所有资料51hei提供下载:
HC_SR501.7z (2.86 MB, 下载次数: 266)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶 踩1
回复

使用道具 举报

沙发
ID:609160 发表于 2019-9-8 16:27 | 只看该作者
试试看
回复

使用道具 举报

板凳
ID:516571 发表于 2019-9-23 09:35 | 只看该作者

之前做毕设用的,可以报警,就是灵敏度有待提高
回复

使用道具 举报

地板
ID:660611 发表于 2019-12-11 09:53 | 只看该作者
请问楼主有整个过程的源代码?
回复

使用道具 举报

5#
ID:674555 发表于 2019-12-26 14:27 | 只看该作者
试试看
回复

使用道具 举报

6#
ID:203771 发表于 2019-12-26 15:40 | 只看该作者
谢谢分享
回复

使用道具 举报

7#
ID:516571 发表于 2020-10-29 10:55 | 只看该作者
WXian 发表于 2019-12-11 09:53
请问楼主有整个过程的源代码?

有全部的源代码
回复

使用道具 举报

8#
ID:505198 发表于 2020-12-13 20:14 | 只看该作者
狂野的野马 发表于 2019-9-23 09:35
之前做毕设用的,可以报警,就是灵敏度有待提高

灵敏度怎么提高的,跟什么有关系?
回复

使用道具 举报

9#
ID:776119 发表于 2022-4-26 21:25 | 只看该作者
这个实现报警,使需要外接什么吗
回复

使用道具 举报

10#
ID:776119 发表于 2022-4-26 21:27 | 只看该作者
这个实现报警功能,是需要外接报警装置吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表