基于STM32F103的SR505人体红外感应模块代码
时间: 2023-08-01 12:14:15 浏览: 147
以下是基于STM32F103的SR505人体红外感应模块代码示例:
```c
#include "stm32f10x.h"
#include "delay.h"
#include "usart.h"
#define SR505_PORT GPIOA
#define SR505_PIN GPIO_Pin_0
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = SR505_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(SR505_PORT, &GPIO_InitStructure);
USART1_Init();
while (1)
{
if (GPIO_ReadInputDataBit(SR505_PORT, SR505_PIN) == 1)
{
USART1_SendString("Someone is detected!\r\n");
}
else
{
USART1_SendString("No one is detected.\r\n");
}
DelayMs(500);
}
}
```
在上述代码中,我们首先初始化了GPIO口,将PA0口设置为浮空输入模式。然后初始化了串口,用于输出检测结果。接下来进入了一个while循环中,不断读取SR505模块输出的高低电平,如果检测到有人,则通过串口输出提示信息,否则输出未检测到人的信息。最后通过延时函数DelayMs()来控制检测周期。
阅读全文