女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

STM32CUBEIDE(14)----外部中斷EXTI

嵌入式單片機MCU開發(fā) ? 來源:嵌入式單片機MCU開發(fā) ? 作者:嵌入式單片機MCU開 ? 2023-07-26 14:33 ? 次閱讀

概述

外部中斷和事件控制器 (EXTI) 管理外部和內(nèi)部異步事件 / 中斷,并生成相應的事件請求到CPU/ 中斷控制器和到電源管理的喚醒請求。本例程主要講解如何使用外部中斷觸發(fā)LED。 最近在弄ST和GD的課程,需要GD樣片的可以加群申請:6_15061293 。

視頻教學

https://www.bilibili.com/video/BV1dd4y1v7Pe/

csdn課程

課程更加詳細。 https://download.csdn.net/course/detail/35611

生成例程

使用STM32CUBEMX生成例程,這里使用NUCLEO-F103RB開發(fā)板
在這里插入圖片描述
查看原理圖,PC13為按鍵管腳。
在這里插入圖片描述
LED管腳為PA5。

在這里插入圖片描述

配置時鐘

配置時鐘為64M。
在這里插入圖片描述

中斷口配置

開發(fā)板上的PC13為藍色按鈕,故配置此端口為中斷口。

在這里插入圖片描述在這里插入圖片描述

GPIO 口連接到 16 個外部中斷 / 事件線如下圖 。可以看到PC13應該是在EXTI13上。
在這里插入圖片描述

外部中斷/事件控制器用于產(chǎn)生事件/中斷請求的邊沿檢測器。每根輸入線都可單獨進行配置,以選擇類型(中斷或事件)和相應的觸發(fā)事件(上升沿觸發(fā)、下降沿觸發(fā)或邊沿觸發(fā))。每根輸入線還可單獨屏蔽。掛起寄存器用于保持中斷請求的狀態(tài)線。
在這里插入圖片描述

所以需要配置中斷口是上升沿觸發(fā)或者下降沿觸發(fā)。
在這里插入圖片描述

中斷服務函數(shù)

配置完中斷優(yōu)先級之后,接著要做的就是編寫中斷服務函數(shù)。中斷服務函數(shù)的名字是在 HAL 庫中事先有定義的。
在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

中斷線 10-15 共用中斷函數(shù)。一般情況下,我們可以把中斷控制邏輯直接編寫在中斷服務函數(shù)中,但是 HAL 庫把中斷處理過程進行了簡單封裝。
在這里插入圖片描述

GPIO配置

PA5為板上LED燈,配置PA5為輸出口,當中斷發(fā)生時候改變IO口極性。
在這里插入圖片描述

在這里插入圖片描述

配置中斷優(yōu)先級(NVIC),并使能中斷

同樣的,在mian.c的MX_GPIO_Init中,設置好中斷線和 GPIO 映射關系,然后又設置好了中斷的觸發(fā)模式等初始化參數(shù)。既然是外部中斷,涉及到中斷我們當然還要設置 NVIC 中斷優(yōu)先級。 HAL_NVIC_SetPriority的中間0表示搶占優(yōu)先級為0,最右邊的0表示子優(yōu)先級為0。

  1. 搶占優(yōu)先級比子優(yōu)先級的優(yōu)先權更高,這意味搶占優(yōu)先級更高的中斷會先執(zhí)行,而不管子優(yōu)先級的優(yōu)先權,數(shù)值越低優(yōu)先級越高。
  2. 同理,如果搶占優(yōu)先級相同,那么就會比較子優(yōu)先級,子優(yōu)先級更高的中斷將會先被執(zhí)行,數(shù)值越低優(yōu)先級越高。
  3. 當兩個中斷源的搶占式優(yōu)先級相同時,這兩個中斷將沒有嵌套關系,當一個中斷到來后,如果正在處理另一個中斷,這個后到來的中斷就要等到前一個中斷處理完之后才能被處理。如果這兩個中斷同時到達,則中斷控制器根據(jù)他們的響應優(yōu)先級高低來決定先處理哪一個;如果他們的搶占式優(yōu)先級和響應優(yōu)先級都相等,則根據(jù)他們在中斷表中的排位順序決定先處理哪一個。
  4. 在這里插入圖片描述

EXTI4_15_IRQHandler

在stm32f0xx_it.c中,程序開始執(zhí)行EXTI4_15_IRQHandler函數(shù),EXTI4_15_IRQHandler函數(shù)只是調(diào)用了另一個函數(shù)HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13);
在這里插入圖片描述

HAL_GPIO_EXTI_Callback

在stm32f1xx_hal_gpio.c中,HAL_GPIO_EXTI_IRQHandler該函數(shù)實現(xiàn)的作用非常簡單,就是清除中斷標志位,然后調(diào)用回調(diào)函數(shù)HAL_GPIO_EXTI_Callback()實現(xiàn)控制邏輯。根據(jù)函數(shù)名Callback也能看出來這里才是真正執(zhí)行具體功能的函數(shù),該函數(shù)需要在mian.c文件中重寫,通過判斷中斷是來自哪個IO口編寫相應的中斷服務控制邏輯。

在這里插入圖片描述

代碼

在main.c中,重寫HAL_GPIO_EXTI_Callback。

/* USER CODE BEGIN 4 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){
    if(GPIO_Pin == GPIO_PIN_13){/* KEY */  
        /* 翻轉(zhuǎn)LED */
        HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);
    } 
}
/* USER CODE END 4 */

演示效果

LED燈隨著按鍵按下改變極性。
在這里插入圖片描述
審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 中斷
    +關注

    關注

    5

    文章

    904

    瀏覽量

    42524
  • 外部中斷
    +關注

    關注

    1

    文章

    133

    瀏覽量

    16100
  • EXTI
    +關注

    關注

    0

    文章

    27

    瀏覽量

    3877
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    STM32CubeIDE軟件實現(xiàn)STM32外部中斷實例

    本文用STM32CubeIDE軟件實現(xiàn)STM32外部中斷實例。
    的頭像 發(fā)表于 08-24 09:09 ?4782次閱讀

    STM32cubeIDE PA0口外部中斷改變LED燈狀態(tài)時,GPIO翻轉(zhuǎn)函數(shù)放在外部中斷回調(diào)函數(shù)中不被調(diào)用怎么解決?

    STM32cubeIDE PA0口外部中斷改變LED燈狀態(tài)時,GPIO翻轉(zhuǎn)函數(shù)放在外部中斷回調(diào)函數(shù)中不被調(diào)用,放在
    發(fā)表于 03-12 06:32

    STM32CubeIDE SWV功能介紹

    01 引言 STM32CubeIDE是ST官方推出的集成開發(fā)環(huán)境,集成了很多STM32的調(diào)試與開發(fā)工具。本文主要介紹如何使用SWV功能來打印輸出。 02 問題描述 客戶使用STM32CubeIDE
    的頭像 發(fā)表于 10-13 14:20 ?4102次閱讀
    <b class='flag-5'>STM32CubeIDE</b> SWV功能介紹

    Ubuntu 18.04 安裝 STM32CubeIDE 小記

    Ubuntu 18.04 安裝 STM32CubeIDE 小記
    發(fā)表于 11-18 17:36 ?9次下載
    Ubuntu 18.04 安裝 <b class='flag-5'>STM32CubeIDE</b> 小記

    如何用STM32CubeIDE軟件實現(xiàn)STM32外部中斷

    本文用STM32CubeIDE軟件實現(xiàn)STM32外部中斷實例。 新建工程 “File”-“New”-“STM32 Project”。 輸入芯
    的頭像 發(fā)表于 11-22 10:15 ?5787次閱讀
    如何用<b class='flag-5'>STM32CubeIDE</b>軟件實現(xiàn)<b class='flag-5'>STM32</b><b class='flag-5'>外部</b><b class='flag-5'>中斷</b>

    STM32CubeIDE XiP 和 BootROM介紹, XiP外部內(nèi)存QSPI FLASH執(zhí)行用戶代碼

    STM32CubeIDE XiP 和 BootROM介紹, XiP外部內(nèi)存QSPI FLASH執(zhí)行用戶代碼
    發(fā)表于 12-02 09:21 ?14次下載
    <b class='flag-5'>STM32CubeIDE</b> XiP 和 BootROM介紹, XiP<b class='flag-5'>外部</b>內(nèi)存QSPI FLASH執(zhí)行用戶代碼

    STM32CubeIDE使用

    參考STM32CubeIDE屬于一站式工具,本文帶你體驗它的強大第一個STM32CubeIDE項目STM32CubeIDE使用記錄STM32CubeIDE使用筆記(03):使用ST-L
    發(fā)表于 12-02 17:21 ?29次下載
    <b class='flag-5'>STM32CubeIDE</b>使用

    STM32CubeIDE初識

    STM32CubeIDE初識
    發(fā)表于 12-02 18:36 ?23次下載
    <b class='flag-5'>STM32CubeIDE</b>初識

    STM32CubeIDE安裝-NSIS Error問題

    STM32CubeIDE安裝-NSIS Error問題
    發(fā)表于 12-03 21:06 ?18次下載
    <b class='flag-5'>STM32CubeIDE</b>安裝-NSIS Error問題

    STM32CubeIDE的MCU開發(fā)

    以前做stm32嵌入式開發(fā)均使用的是破解版的keil軟件,現(xiàn)在工作需要無法按照此步驟進行,最近針對ST官方免費軟件STM32CubeIDE進行了相關調(diào)研工作。1 STM32CubeIDE簡介目前主流
    發(fā)表于 12-05 12:21 ?25次下載
    <b class='flag-5'>STM32CubeIDE</b>的MCU開發(fā)

    第一個STM32CubeIDE項目

    使用STM32CubeIDE的第一個項目開始第一個項目添加代碼今天開始做一個STM32CubeIDE的第一個項目,首先需要說明的:STM32CubeIDE是一個免費的軟件開始第一個項目在文件菜單中選
    發(fā)表于 12-29 19:29 ?11次下載
    第一個<b class='flag-5'>STM32CubeIDE</b>項目

    STM32外部中斷控制器EXTI詳解

    什么是外部中斷控制器,外部中斷控制器在STM32芯片中處于什么位置,它的作用是什么,EXTI與G
    的頭像 發(fā)表于 04-20 11:44 ?3172次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>外部</b><b class='flag-5'>中斷</b>控制器<b class='flag-5'>EXTI</b>詳解

    STM32的IO外部中斷EXTI的使用

    的方式訪問輸入引腳,還可以通過另外一種叫做外部中斷的方式來對引腳的輸入信號進行檢測,本篇首先介紹下EXTI的結(jié)構,接著介紹外部中斷的相關概念
    的頭像 發(fā)表于 06-22 10:21 ?2716次閱讀
    <b class='flag-5'>STM32</b>的IO<b class='flag-5'>外部</b><b class='flag-5'>中斷</b><b class='flag-5'>EXTI</b>的使用

    STM32CubeIDE安裝指南

    電子發(fā)燒友網(wǎng)站提供《STM32CubeIDE安裝指南.pdf》資料免費下載
    發(fā)表于 08-01 15:44 ?6次下載
    <b class='flag-5'>STM32CubeIDE</b>安裝指南

    巧用 STM32CubeIDE 之編譯警告

    巧用 STM32CubeIDE 之編譯警告
    的頭像 發(fā)表于 10-25 16:33 ?1345次閱讀
    巧用 <b class='flag-5'>STM32CubeIDE</b> 之編譯警告