GPIO的使用--滴答定時器--pir人體紅外傳感器

目錄

一、滴答定時器的使用與原理

1、定義

2、原理

(1)向上計數?編輯

(2)向下計數

?(3)?代碼流程

a、配置滴答時鐘喚醒頻率

b、滴答時鐘中斷函數

(4)結果

3、優化-->寄存器協助模式

代碼

二、pir傳感器的使用

1、介紹

2、接法

?3、接線?編輯

?4、代碼

main.c

?pir.c

pir.h

5、運行結果


一、滴答定時器的使用與原理

1、定義

? ? ? 滴答定時器,又稱系統定時器。它應用系統時鐘拉計算時間,因此常用作為計時 工具來使用,也可以實現固定時間去做一件簡單的事情。

2、原理

(1)向上計數

(2)向下計數

?(3)?代碼流程

a、配置滴答時鐘喚醒頻率
SysTick_Config(SystemCoreClock/100);//每0.01s調用中斷
b、滴答時鐘中斷函數
void SysTick_Handler(void)//滴答中斷調用
{static uint32_t i=0;i++;if(i==100)//1s{PFout(9)=0;PFout(10)=1;PFout(12)=1;		}if(i==200){PFout(9)=1;PFout(10)=0;PFout(12)=1;	}if(i==300){i=0;PFout(9)=1;PFout(10)=1;PFout(12)=0;	}}

(4)結果

main函數中寫有一個空while循環,循環不結束,SysTick_Config會一直調用中斷函數,使得三個燈一直交替閃爍。

3、優化-->寄存器協助模式

原理如圖

代碼

delay.c

#include "stm32f4xx.h"  void delay_ms(uint32_t ms)
{while(ms--){SysTick->CTRL=0;//使其工作SysTick->LOAD=(SystemCoreClock/1000);//一毫秒SysTick->VAL=0;//清空SysTick->CTRL=5;//讓內部時鐘開始干活while((SysTick->CTRL & 0x00010000)==0);SysTick->CTRL=0;}
}

delay.h

#include "stm32f4xx.h"                  // Device headervoid delay_ms(uint32_t ms);

?main.c

#include "stm32f4xx.h"                  // Device header
#include "led.h"
#include "key.h"
#include "BitBand.h"
#include "delay.h"
#include <stdio.h>int main()
{Led_Init();	while(1){PFout(9)=0;PFout(10)=1;PFout(12)=1;	delay_ms(1000);PFout(9)=1;PFout(10)=0;PFout(12)=1;	delay_ms(1000);PFout(9)=1;PFout(10)=1;PFout(12)=0;	delay_ms(1000);}
}

二、pir傳感器的使用

1、介紹

? ? ? 熱釋電紅外線傳感器是利用紅外線來進行數據處理的一種傳感器。主要是由一種高熱電系數的材料,如鋯鈦酸鉛系陶瓷、鉭酸鋰、硫酸三甘鈦等制成尺寸為2*1mm的探測元件。

? ? ? 人體都有恒定的體溫,一般在37度,所以會發出特定波長10UM左右的紅外線,被動式紅外探頭就是靠探測人體發射的10UM左右的紅外線而進行工作的。人體發射的10UM左右的紅外線通過菲泥爾濾光片增強后聚集到紅外感應源上。紅外感應源通常采用熱釋電元件,這種元件在接收到人體紅外輻射溫度發生變化時就會失去電荷平衡,向外釋放電荷,后續電路經檢測處理后就能產生報警信號。

2、接法

?3、接線

?4、代碼

main.c

#include "stm32f4xx.h"                  // Device header
#include "led.h"
#include "key.h"
#include "BitBand.h"
#include "pir.h"int main()
{Led_Init();Pir_Init();uint32_t key=0;//傳感器測試while(1){key=PFin(14);if(key==1)//有人{PFout(12)=0;}else//否則周邊沒有人{PFout(12)=1;}}
}

?pir.c

#include "stm32f4xx.h"                  // Device headervoid Pir_Init()
{RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);GPIO_InitTypeDef gpio_init;gpio_init.GPIO_Mode=GPIO_Mode_IN;
//	gpio_init.GPIO_OType=GPIO_OType_OD;gpio_init.GPIO_Pin=GPIO_Pin_14;gpio_init.GPIO_PuPd=GPIO_PuPd_DOWN;//默認為低電平gpio_init.GPIO_Speed=GPIO_High_Speed;GPIO_Init(GPIOF,&gpio_init);
}

pir.h

#include "stm32f4xx.h"                  // Device headervoid Pir_Init()
{RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);GPIO_InitTypeDef gpio_init;gpio_init.GPIO_Mode=GPIO_Mode_IN;
//	gpio_init.GPIO_OType=GPIO_OType_OD;gpio_init.GPIO_Pin=GPIO_Pin_14;gpio_init.GPIO_PuPd=GPIO_PuPd_DOWN;//默認為低電平gpio_init.GPIO_Speed=GPIO_High_Speed;GPIO_Init(GPIOF,&gpio_init);
}

5、運行結果

pir傳感器控制亮燈

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212199.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212199.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212199.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Proxy Hook Trace JSON

Proxy var window {key: "qww",age: 22 } window new Proxy(window, {get(target, p, receiver) {console.log("target: ", target);console.log("p: ", p);// return window[username];/// 這里如果這樣寫. 有遞歸風險的...// return Reflec…

【線性代數與矩陣論】Jordan型矩陣

Jordan型矩陣 2023年11月3日 #algebra 文章目錄 Jordan型矩陣1. 代數重數與幾何重數2. Jordan塊與Jordan標準型2.1 最小多項式與Jordan標準型2.2 兩類重要矩陣 3. 矩陣的Jordan分解3.1 Jordan分解的應用 下鏈 1. 代數重數與幾何重數 在對向量做線性變換時&#xff0c;向量空間…

讀書筆記-《數據結構與算法》-摘要4[插入排序]

插入排序 核心&#xff1a;通過構建有序序列&#xff0c;對于未排序序列&#xff0c;在已排序序列中從后向前掃描(對于單向鏈表則只能從前往后遍歷)&#xff0c;找到相應位置并插入。實現上通常使用in-place排序(需用到O(1)的額外空間) 從第一個元素開始&#xff0c;該元素可…

如何主持一場知識競賽搶答賽

知識競賽主持說難不難&#xff0c;說簡單也不簡單&#xff0c;我就從易到難介紹一下。 入門級&#xff0c;題主不用練習太多其他花哨的技巧&#xff0c;只要注意一點&#xff0c;熟悉比賽流程。知識競賽需要給所有選手一個公平流暢的答題環境&#xff0c;所以題主自身必須非常…

干貨!接口中的大事務,該如何進行優化?

作為后端開發的程序員&#xff0c;我們常常會的一些相對比較復雜的邏輯&#xff0c;比如我們需要給前端寫一個調用的接口&#xff0c;這個接口需要進行相對比較復雜的業務邏輯操作&#xff0c;比如會進行&#xff0c;查詢、遠程接口或本地接口調用、更新、插入、計算等一些邏輯…

掌握iText:輕松處理PDF文檔-進階篇

簡體中文寫入 iText本身對簡體中文的支持有限&#xff0c;但可以通過引入額外的字體包來增強其對簡體中文的支持。例如&#xff0c;可以使用iTextAsian.jar這個亞洲字體包&#xff0c;它包含了幾種簡單的亞洲字體&#xff0c;其中包括簡體中文字體。只需要將iTextAsian.jar放到…

springboot 啟動之后報錯:Unsatisfied dependency through field ‘bbbClient’

springboot 啟動之后報錯&#xff1a;UnsatisfiedDepencyException:Error creating bean with name ‘aaaServiceImpl’: Unsatisfied dependency through field ‘bbbClient’。 這兩天一直在進行著日常 debugger 查看代碼。可是發生了一個挺“靈異”的事件。那就是我看的項目…

46. 全排列

46. 全排列 原題鏈接&#xff1a;完成情況&#xff1a;解題思路&#xff1a;參考代碼&#xff1a;_46全排列_構建數組回溯_46全排列_直接構建 錯誤經驗吸取 原題鏈接&#xff1a; 46. 全排列 https://leetcode.cn/problems/permutations/description/ 完成情況&#xff1a;…

codeforces D.In Love

思路 用兩個 m u l t i s e t multiset multiset 分別存 l , r l,r l,r 。你也可以寫平衡樹在 l l l 的 m u l t i s e t multiset multiset 里去查詢是否存在比最小的 r r r 大的 l l l 。 Think Twice, Code Once #include<bits/stdc.h> #define il inline #d…

小模型學習(1)-人臉識別

【寫作背景】因為最近一直在研究大模型&#xff0c;在與客戶進行交流時&#xff0c;如果要將大模型的變革性能力講清楚&#xff0c;就一定要能將AI小模型的一些原理和效果講清楚&#xff0c;進而形成對比。當然這不是一件簡單的事情&#xff0c;一方面大模型分析問題的的本質原…

Mybatis分頁插件PageHelper

PageHelper是什么&#xff1f; 是MyBatis提供的分頁插件&#xff0c;可以支持MySQL、Oracle等六種數據庫。 集成方式如下&#xff1a; 1 引入依賴 <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper --> <dependency><groupId>co…

反射加載SDK完成統一調用

文章目錄 1、需求背景2、接口抽象類具體實現類3、疑問4、存在的問題5、通過反射加載SDK并完成調用5、補充&#xff1a;關于業務網關7、補充&#xff1a;關于SDK的開發 關鍵點&#xff1a; 接口抽象類&#xff08;半抽象半實現&#xff09;具體實現類業務網關反射加載SDK&#…

JAVA如何調用python

以下代碼想通過測試&#xff0c;必須有一個前提&#xff1a;電腦上安裝了Python環境。不太習慣說廢話&#xff0c;直接上代碼了。 以下是用于測試的python代碼&#xff08;mytest.py&#xff09;&#xff1a; # 因為用戶到了參數處理&#xff0c;所以需要引用 import argpars…

Java學習手冊——第五篇數據類型

數據類型&#xff1a;是數據化的基石&#xff0c;如果沒有數據類型怎么表示呢&#xff1f;比如年齡可以用整數&#xff1a;18歲。如果有更好的表示方式大家可以留言喲~ 在舉個例子就是姓名&#xff0c;我們需要用字符串的形式來表示。這就是數據類型的魅力&#xff0c;而又有同…

TS基礎語法

前言&#xff1a; 因為在寫前端的時候&#xff0c;發現很多UI組件的語法都已經開始使用TS語法&#xff0c;不學習TS根本看不到懂&#xff0c;所以簡單的學一下TS語法。為了看UI組件的簡單代碼&#xff0c;不至于一臉懵。 一、安裝node 對于windows來講&#xff0c;node版本高…

電腦出現這些現象,說明你的固態硬盤要壞了

與傳統機械硬盤&#xff08;HDD&#xff09;相比&#xff0c;固態硬盤&#xff08;SSD&#xff09;速度更快、更穩定、功耗更低。但固態硬盤并不是完美無瑕的&#xff0c;由于顆粒寫入機制&#xff0c;可能會在七到十年的預期壽命之前出現故障。所以用戶最好為最終故障做好準備…

網頁設計中增強現實的興起

目錄 了解增強現實 增強現實的歷史背景 AR 和網頁設計的交叉點 AR 在網頁設計中的優勢 增強參與度和互動性 個性化的用戶體驗 競爭優勢和品牌差異化 AR 在網頁設計中的用例 結論 近年來&#xff0c;增強現實已成為一股變革力量&#xff0c;重塑了我們與數字領域互動的方式。它被…

【FMCW毫米波雷達設計 】 — FMCW波形

原書&#xff1a;FMCW Radar Design 1 引言 本章研究驅動FMCW雷達的主要波形:線性調頻(LFM)波形。我們研究信號的行為及其性質。隨后&#xff0c;本章討論了匹配濾波理論&#xff0c;并研究了壓縮這種波形的技術&#xff0c;特別是所謂的拉伸處理&#xff0c;它賦予FMCW雷達極…

DOS 批處理 (二)

DOS 批處理 1. 基礎 DOS 命令1.1 基礎命令1.2 文件系統操作1.3 文件夾管理1.4 文件管理1.5 網絡相關1.6 系統管理1.7 IF、FOR和NETIFFORNET 1. 基礎 DOS 命令 command /? 查找幫助DOS命令不區分命令字母的大小寫 C:\Users\Administrator>echo 1 1 C:\Users\Administrator…

基于SSM框架的倉庫管理系統

基于SSM框架的倉庫管理系統 文章目錄 基于SSM框架的倉庫管理系統 一.引言二.系統設計三.技術架構四.功能實現五.界面展示六.源碼獲取 一.引言 現代商業環境中&#xff0c;倉庫管理對于企業的運營效率和客戶滿意度至關重要。傳統的手工管理方式已經無法滿足日益復雜的倉儲需求。…