標(biāo)題: 基于STM32F103ZET6 HC_SR501人體紅外感應(yīng)程序 [打印本頁]

作者: xupenghjg    時間: 2021-6-17 20:17
標(biāo)題: 基于STM32F103ZET6 HC_SR501人體紅外感應(yīng)程序


HC_SR501配置函數(shù)

先是頭文件,

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

void HC_SR(void);是HC_SR501的PA0配置函數(shù)

u8 HC_SR501_Statue(void);是為了判斷PA0輸入狀態(tài),如果被拉高了,說明有人進(jìn)入了

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
}


部分主函數(shù)

int main(void)
{
delay_init(72); //滴答計(jì)時器配置函數(shù)
RCC_Configuration();//時鐘配置
GPIO_Configuration();//GPIO配置
HC_SR();//HC_SR501引腳配置
USART1_Configuration();//串口配置函數(shù)

while(1)
{
GPIO_ResetBits(GPIOC,GPIO_Pin_0);//證明系統(tǒng)成功進(jìn)入該循環(huán)


if(HC_SR501_Statue()==1)//如果返回狀態(tài)為1 ,則該判斷語句成立,輸出有人
  {
  printf("有人\r\n");
  }
  else printf("沒人\r\n");
  delay_ms(500); //防止輸出太過頻繁
}
}
工程文件和pdf: 紅外傳感器.7z (5.92 MB, 下載次數(shù): 85)





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1