hc-sr312模块基于stm32f103c8t6的使用代码
时间: 2023-09-01 13:13:03 浏览: 308
hc-sr312是一种人体红外感应模块,可以用于检测人体的动静。下面是基于stm32f103c8t6的hc-sr312模块使用代码:
```c
#include "stm32f10x.h"
#define HC_SR312_GPIO GPIOA
#define HC_SR312_PIN GPIO_Pin_1
void hc_sr312_init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin = HC_SR312_PIN;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(HC_SR312_GPIO, &GPIO_InitStruct);
}
int main(void)
{
hc_sr312_init();
while(1)
{
if(GPIO_ReadInputDataBit(HC_SR312_GPIO, HC_SR312_PIN) == SET)
{
//有人靠近
}
else
{
//无人
}
}
}
```
在上面的代码中,使用了stm32f10x库来初始化GPIOA1引脚为输入方式,读取引脚电平来判断是否有人靠近。当有人靠近时,GPIO_ReadInputDataBit()函数返回SET,否则返回RESET。
需要注意的是,在使用hc-sr312模块时,需要使用外部3.3V电源,同时需要在VCC和GND之间加上100nf电容,以提供稳定的电压。
阅读全文