国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32單片機(五)第二節(jié):EXTI外部中斷練習(xí)(對射式紅外傳感器計次和旋轉(zhuǎn)編碼器計次)

這篇具有很好參考價值的文章主要介紹了STM32單片機(五)第二節(jié):EXTI外部中斷練習(xí)(對射式紅外傳感器計次和旋轉(zhuǎn)編碼器計次)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?? 專欄簡介:本專欄記錄了從零學(xué)習(xí)單片機的過程,其中包括51單片機和STM32單片機兩部分;建議先學(xué)習(xí)51單片機,其是STM32等高級單片機的基礎(chǔ);這樣再學(xué)習(xí)STM32時才能融會貫通。
?? 專欄適用人群 :適用于想要從零基礎(chǔ)開始學(xué)習(xí)入門單片機,且有一定C語言基礎(chǔ)的的童鞋。
??專欄目標(biāo):實現(xiàn)從零基礎(chǔ)入門51單片機和STM32單片機,力求在玩好單片機的同時,能夠了解一些計算機的基本概念,了解電路及其元器件的基本理論等。

?? 專欄主要內(nèi)容: 主要學(xué)習(xí)STM32單片機的功能、各個模塊、單片機的外設(shè)、驅(qū)動等,最終玩好單片機和單片機的外設(shè),全程手敲代碼,實現(xiàn)我們所要實現(xiàn)的功能。
?? 專欄說明 :如果文章知識點有錯誤的地方,歡迎大家隨時在文章下面評論,我會第一時間改正。讓我們一起學(xué)習(xí),一起進步。
??專欄主頁:http://t.csdn.cn/HCD8v

本學(xué)習(xí)過程參考:https://space.bilibili.com/383400717

STM3單片機安裝軟件、各種資料以及源碼的路徑:
鏈接:https://pan.baidu.com/s/1snD0uuTfMhchFqOMWvAiHA?pwd=asdf#list/path=%2F
提取碼:asdf

鏈接里壓縮包的解壓密碼:32

本大節(jié)主要學(xué)習(xí)STM32的中斷系統(tǒng)和外部中斷,包含兩部分,第一小節(jié)主要學(xué)習(xí)中斷系統(tǒng)的基礎(chǔ)知識,第二小節(jié)是寫兩個程序進行練習(xí),即對射式紅外傳感器計次和旋轉(zhuǎn)編碼器計次,最終附上所有的源代碼;
本小節(jié)主要是對上一節(jié)學(xué)習(xí)的EXTI外部中斷進行實戰(zhàn)練習(xí),編寫程序進行練習(xí),實現(xiàn)對射式紅外傳感器計次,并附上程序源碼;

一、本節(jié)目標(biāo)

目標(biāo):對射式紅外傳感器計次

實現(xiàn)OLED顯示屏上實時顯示紅外傳感器被擋光的次數(shù)。
過程是我們對紅外傳感器進行擋光,隨后把手拿開;這樣擋光–拿開的過程,每進行一次,OLED上顯示的次數(shù)加1;如下圖所示:

STM32單片機(五)第二節(jié):EXTI外部中斷練習(xí)(對射式紅外傳感器計次和旋轉(zhuǎn)編碼器計次)

二、設(shè)備介紹

2.1 設(shè)備介紹

2.1.1 旋轉(zhuǎn)編碼器介紹

STM32單片機(五)第二節(jié):EXTI外部中斷練習(xí)(對射式紅外傳感器計次和旋轉(zhuǎn)編碼器計次)

  • 第一個圖的旋轉(zhuǎn)編碼器只能測位置和速度,不能測方向
  • 第二個圖是本課程使用的旋轉(zhuǎn)編碼器,第三張圖是其內(nèi)部拆解;既可以測位置和速度,也可以測方向;

2.1.2 旋轉(zhuǎn)編碼器硬件電路

STM32單片機(五)第二節(jié):EXTI外部中斷練習(xí)(對射式紅外傳感器計次和旋轉(zhuǎn)編碼器計次)

三、對射式紅外傳感器計次源碼

3.1 接線圖

STM32單片機(五)第二節(jié):EXTI外部中斷練習(xí)(對射式紅外傳感器計次和旋轉(zhuǎn)編碼器計次)
對射式紅外傳感器模塊,VCC、GND分別接電源的正負(fù)極,DO數(shù)字輸出端,隨意選擇一個GPIO口接上就行,在這里我接到了B14端口;

硬件接線圖如下所示:

STM32單片機(五)第二節(jié):EXTI外部中斷練習(xí)(對射式紅外傳感器計次和旋轉(zhuǎn)編碼器計次)

程序邏輯:
當(dāng)我們的擋光片或者編碼盤在這個對射式紅外傳感器模塊中間經(jīng)過時,這個DO就會輸出電平變化的信號,然后這個電平跳變的信號觸發(fā)STM32 PB14號口的中斷,我們在中斷函數(shù)里執(zhí)行變量++的程序,并最終輸出在OLED上即可。

3.2 代碼

代碼路徑:\STM32入門教程資料\STM32入門教程資料\程序源碼\程序源碼\STM32Project\5-1 對射式紅外傳感器計次\User

3.2.1 代碼邏輯:

STM32單片機(五)第二節(jié):EXTI外部中斷練習(xí)(對射式紅外傳感器計次和旋轉(zhuǎn)編碼器計次)

  • 第一步,配置RCC,把涉及到的外設(shè)的時鐘都打開,一定要謹(jǐn)記,不打開時鐘,外設(shè)是沒法工作的;
  • 第二步,配置GPIO,選擇我們的端口為輸入模式
  • 第三步,配置AFIO,選擇我們用哦的這一路GPIO,連接到后面的EXTI
  • 第四步,配置邊沿觸發(fā)方式,比如上升沿、下降沿或者雙邊沿;還有選擇觸發(fā)響應(yīng)方式,可以選擇中斷響應(yīng)和事件響應(yīng);
  • 第五步,配置NVIC,給我們這個中斷選擇一個合適的優(yōu)先級;
  • 最后,通過NVIC,外部中斷信號就能進入CPU了,這樣CPU才能收到中斷信號,才能跳轉(zhuǎn)到中斷函數(shù)里執(zhí)行中斷程序;

以上就是外部中斷的配置流程,涉及到的外設(shè)包括RCC、GPIO、AFIO、EXTI、NVIC。

3.2.2 代碼解釋:

第一步開啟時鐘:
開啟GPIOB和AFIO的時鐘:
STM32單片機(五)第二節(jié):EXTI外部中斷練習(xí)(對射式紅外傳感器計次和旋轉(zhuǎn)編碼器計次)
EXTI、NVIC的時鐘默認(rèn)是開啟的,所以不需要程序開啟;

第二步配置GPIO為輸入模式:
STM32單片機(五)第二節(jié):EXTI外部中斷練習(xí)(對射式紅外傳感器計次和旋轉(zhuǎn)編碼器計次)
第三步,配置AFIO外設(shè):
STM32單片機(五)第二節(jié):EXTI外部中斷練習(xí)(對射式紅外傳感器計次和旋轉(zhuǎn)編碼器計次)
選擇GPIOB,連接PB14號口的第14個中斷線路;

第四步,配置EXTI:

EXTI的所有庫函數(shù)如下,
STM32單片機(五)第二節(jié):EXTI外部中斷練習(xí)(對射式紅外傳感器計次和旋轉(zhuǎn)編碼器計次)
EXTI初始化:
STM32單片機(五)第二節(jié):EXTI外部中斷練習(xí)(對射式紅外傳感器計次和旋轉(zhuǎn)編碼器計次)
將EXTI的第14個線路配置位中斷模式,下降沿觸發(fā);

第五步:配置NVIC:

NVIC庫函數(shù):

STM32單片機(五)第二節(jié):EXTI外部中斷練習(xí)(對射式紅外傳感器計次和旋轉(zhuǎn)編碼器計次)
STM32單片機(五)第二節(jié):EXTI外部中斷練習(xí)(對射式紅外傳感器計次和旋轉(zhuǎn)編碼器計次)

3.2.3 完整代碼

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "CountSensor.h"

int main(void)
{
	OLED_Init();
	CountSensor_Init();
	
	OLED_ShowString(1, 1, "Count:");
	
	while (1)
	{
		OLED_ShowNum(1, 7, CountSensor_Get(), 5);
	}
}

CountSensor.c文章來源地址http://www.zghlxwxcb.cn/news/detail-486389.html

#include "stm32f10x.h"                  // Device header

uint16_t CountSensor_Count;

void CountSensor_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	
	GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource14);
	
	EXTI_InitTypeDef EXTI_InitStructure;
	EXTI_InitStructure.EXTI_Line = EXTI_Line14;
	EXTI_InitStructure.EXTI_LineCmd = ENABLE;
	EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
	EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
	EXTI_Init(&EXTI_InitStructure);
	
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
	
	NVIC_InitTypeDef NVIC_InitStructure;
	NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
	NVIC_Init(&NVIC_InitStructure);
}

uint16_t CountSensor_Get(void)
{
	return CountSensor_Count;
}

void EXTI15_10_IRQHandler(void)
{
	if (EXTI_GetITStatus(EXTI_Line14) == SET)
	{
		/*如果出現(xiàn)數(shù)據(jù)亂跳的現(xiàn)象,可再次判斷引腳電平,以避免抖動*/
		if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_14) == 0)
		{
			CountSensor_Count ++;
		}
		EXTI_ClearITPendingBit(EXTI_Line14);
	}
}

到了這里,關(guān)于STM32單片機(五)第二節(jié):EXTI外部中斷練習(xí)(對射式紅外傳感器計次和旋轉(zhuǎn)編碼器計次)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【單片機】STM32單片機頻率計程序,外部脈沖計數(shù)程序,基于脈沖計數(shù)的頻率計程序,STM32F103

    【單片機】STM32單片機頻率計程序,外部脈沖計數(shù)程序,基于脈沖計數(shù)的頻率計程序,STM32F103

    兩種方法用于在單片機中實現(xiàn)頻率計的功能。 第一種方法是通過定時器來衡量信號的周期,然后將周期轉(zhuǎn)換為頻率。在這種方法中,你可以使用單片機的定時器模塊來測量輸入信號的周期,定時器會產(chǎn)生一個計數(shù)值,你可以根據(jù)這個計數(shù)值來推算出輸入信號的周期,并通過簡

    2024年02月11日
    瀏覽(26)
  • 單片機外部晶振故障后自動切換內(nèi)部晶振——以STM32為例

    單片機外部晶振故障后自動切換內(nèi)部晶振——以STM32為例

    作者 日期 版本 說明 Dog Tao 2023.08.02 V1.0 1. 發(fā)布初始版本。 Dog Tao 2023.08.10 V1.1 1. 修改了STM32F103時鐘系統(tǒng)的配圖位置。 時鐘信號是單片機的心跳,對嵌入式系統(tǒng)的長期穩(wěn)定運行有著至關(guān)重要的作用?,F(xiàn)代單片機的時鐘信號一般都支持外部時鐘、外部晶體振蕩器、內(nèi)部RC振蕩器等

    2024年02月13日
    瀏覽(45)
  • STM32--EXTI外部中斷

    STM32--EXTI外部中斷

    前文回顧---STM32--GPIO 相關(guān)回顧--有關(guān)中斷系統(tǒng)簡介 目錄 STM32中斷 NVIC ?EXTI外部中斷 AFIO EXTI框圖 旋轉(zhuǎn)編碼器簡介 對射式紅外傳感器工程 代碼: 旋轉(zhuǎn)編碼器工程 代碼: 先說一下 基本原理 : 1. 中斷請求發(fā)生 :外部事件(如按鍵觸發(fā),定時器溢出等)引起中斷請求信號; 2. 中

    2024年02月12日
    瀏覽(21)
  • GD32單片機和STM32單片機的對比分析

    GD32單片機和STM32單片機都是基于Arm Cortex-M3/M4內(nèi)核的32位通用微控制器,廣泛應(yīng)用于各種嵌入式系統(tǒng)和物聯(lián)網(wǎng)領(lǐng)域。兩者之間有很多相似之處,但也有一些不同之處,本文將從以下幾個方面對比分析兩者的特點、優(yōu)勢和開發(fā)成本。 GD32單片機采用的是二代的M3/M4內(nèi)核,而STM32單片

    2024年02月16日
    瀏覽(27)
  • 02:STM32--EXTI外部中斷

    02:STM32--EXTI外部中斷

    目錄 一:中斷 1:簡歷 2:AFIO ?3:EXTI ?編輯 ?4:NVIC基本結(jié)構(gòu) 5:使用步驟 二:中斷的應(yīng)用 A:對外式紅外傳感計數(shù)器 1:連接圖?編輯 ?2:函數(shù)介紹 3:硬件介紹 ?4:計數(shù)代碼 B;旋轉(zhuǎn)編碼計數(shù)器 1:連接圖 ?2:硬件介紹 3:旋轉(zhuǎn)編碼器代碼: ????? ???中斷 :在主程序運行過程中,出現(xiàn)了特定

    2024年02月13日
    瀏覽(16)
  • 【STM32】STM32學(xué)習(xí)筆記-EXTI外部中斷(11)

    【STM32】STM32學(xué)習(xí)筆記-EXTI外部中斷(11)

    中斷 :在主程序運行過程中,出現(xiàn)了特定的中斷觸發(fā)條件(中斷源),使得CPU暫停當(dāng)前正在運行的程序,轉(zhuǎn)而去處理中斷程序,處理完成后又返回原來被暫停的位置繼續(xù)運行 中斷優(yōu)先級 :當(dāng)有多個中斷源同時申請中斷時,CPU會根據(jù)中斷源的輕重緩急進行裁決,優(yōu)先響應(yīng)更加

    2024年02月04日
    瀏覽(21)
  • STM32單片機(一)STM32簡介

    STM32單片機(一)STM32簡介

    ?? 專欄簡介:本專欄記錄了從零學(xué)習(xí)單片機的過程,其中包括51單片機和STM32單片機兩部分;建議先學(xué)習(xí)51單片機,其是STM32等高級單片機的基礎(chǔ);這樣再學(xué)習(xí)STM32時才能融會貫通。 ?? 專欄適用人群 :適用于想要從零基礎(chǔ)開始學(xué)習(xí)入門單片機,且有一定C語言基礎(chǔ)的的童鞋

    2024年02月10日
    瀏覽(28)
  • STM32單片機開發(fā)-01 STM32介紹

    STM32單片機開發(fā)-01 STM32介紹

    通過野火開發(fā)板學(xué)習(xí)單片機 從內(nèi)核上分有Cortex-M0、M3、M4 和M7 F1 代表了基礎(chǔ)型,基于Cortex-M3 內(nèi)核,主頻為72MHZ F4 代表了高性能,基于Cortex-M4 內(nèi)核,主頻180M。 數(shù)據(jù)手冊:用于芯片選型和設(shè)計原理圖 參考手冊:用于編程時查閱 Icode總線 – 該總線講M3內(nèi)核的指令總線與閃存指令

    2024年01月21日
    瀏覽(28)
  • STM32單片機(二)STM32環(huán)境搭建

    STM32單片機(二)STM32環(huán)境搭建

    ?? 專欄簡介:本專欄記錄了從零學(xué)習(xí)單片機的過程,其中包括51單片機和STM32單片機兩部分;建議先學(xué)習(xí)51單片機,其是STM32等高級單片機的基礎(chǔ);這樣再學(xué)習(xí)STM32時才能融會貫通。 ?? 專欄適用人群 :適用于想要從零基礎(chǔ)開始學(xué)習(xí)入門單片機,且有一定C語言基礎(chǔ)的的童鞋

    2024年02月10日
    瀏覽(45)
  • 【STM32教程】第四章 STM32的外部中斷EXTI

    【STM32教程】第四章 STM32的外部中斷EXTI

    案例代碼及相關(guān)資料下載鏈接: 鏈接:https://pan.baidu.com/s/1hsIibEmsB91xFclJd-YTYA?pwd=jauj? 提取碼:jauj?? 中斷系統(tǒng)的定義:中斷是指在主程序運行過程中,出現(xiàn)了特定的中斷觸發(fā)條件(中斷源),使得CPU暫停當(dāng)前正在運行的程序,轉(zhuǎn)而去處理中斷程序,處理完成后又返回原來被暫

    2024年02月09日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包