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

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

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

3天內不再提示

STM32F407 外部中斷配置步驟

DS小龍哥-嵌入式技術 ? 來源:DS小龍哥-嵌入式技術 ? 作者:DS小龍哥-嵌入式技 ? 2023-07-06 14:31 ? 次閱讀

介紹STM32F407外部中斷配置步驟,以按鍵為例,實現外部中斷配置,使用按鍵觸發中斷進行LED燈控制。

【1】外部中斷相關知識介紹

img

CM4 內核支持 256 個中斷,其中包含了 16 個內核中斷和 240 個外部中斷,并且具有 256級的可編程中斷設置。但 STM32F4 并沒有使用 CM4 內核的全部東西,而是只用了它的一部分。

STM32F40xx/STM32F41xx 總共有 92 個中斷, STM32F42xx/STM32F43xx 則總共有 96 個中斷,以下僅以 STM32F40xx/41xx 為例講解。

STM32F40xx/STM32F41xx 的 92 個中斷里面, 包括 10 個內核中斷和 82 個可屏蔽中斷,具有 16 級可編程的中斷優先級, 而我們常用的就是這 82 個可屏蔽中斷。

img

img

img

【2】外部中斷示例代碼

exti.c代碼

#include "exti.h"
 ?
 /*
 函數功能:按鍵外部中斷初始化
 硬件連接:
 KEY0 --- >PE4  按下為低電平
 KEY1 --- >PE3  按下為低電平
 KEY2 --- >PE2  按下為低電平
 KEY_UP-- >PA0  按下為高電平
 */
 void KEY_EXTI_Init(void)
 {
 /*1. 開啟SYSCFG時鐘 */
 RCC- >APB2ENR|=1< 14;
 
   /*2. 開放來自線x上的中斷請求*/
   EXTI- >IMR|=1< 0; //中斷線0
   EXTI- >IMR|=1< 2; //中斷線2
   EXTI- >IMR|=1< 3; //中斷線3
   EXTI- >IMR|=1< 4; //中斷線4
 
   /*3. 配置中斷線觸發邊沿*/
   EXTI- >RTSR|=1< 0; //上升沿
   EXTI- >FTSR|=1< 0; //下降沿
   
 EXTI- >RTSR|=1< 2; //上升沿
   EXTI- >FTSR|=1< 2; //下降沿
  
 EXTI- >RTSR|=1< 3; //上升沿
   EXTI- >FTSR|=1< 3; //下降沿
 
   EXTI- >RTSR|=1< 4; //上升沿
   EXTI- >FTSR|=1< 4; //下降沿
   
   /*4. 配置產生中斷的對應IO口*/
   SYSCFG- >EXTICR[0]&=~(0xf< 0*4);
   SYSCFG- >EXTICR[0]|=0x0< 0*4;
   
 SYSCFG- >EXTICR[0]&=~(0xf< 2*4);
   SYSCFG- >EXTICR[0]|=0x4< 2*4;
 
 SYSCFG- >EXTICR[0]&=~(0xf< 3*4);
   SYSCFG- >EXTICR[0]|=0x4< 3*4;
 
 SYSCFG- >EXTICR[1]&=~(0xf< 0*4);
   SYSCFG- >EXTICR[1]|=0x4< 0*4;
 
   /*5. 配置中斷優先級*/
   SetNVICPriorityGrouping(EXTI0_IRQn,2,2);
 SetNVICPriorityGrouping(EXTI2_IRQn,2,2);
 SetNVICPriorityGrouping(EXTI3_IRQn,2,2);
 SetNVICPriorityGrouping(EXTI4_IRQn,2,2);
 }
 ?
 /*
 功 能:外部中斷線0中斷服務函數
 */
 ?
 void EXTI0_IRQHandler(void)
 {
  DelayMs(10);
  if(KEY_UP)
  {
 LED0=!LED0;
 LED1=!LED1;
 printf("KEY_UP\\r\\n");
  }
  EXTI- >PR|=1< 0; //清除中斷標志位
 }
 ?
 /*
 功 能:外部中斷線2中斷服務函數
 */
 void EXTI2_IRQHandler(void)
 {
  DelayMs(10);
  if(KEY2==0)
  {
 LED0=!LED0;
 LED1=!LED1;
 printf("KEY2\\r\\n");
  }
  EXTI- >PR|=1< 2; //清除中斷標志位
 }
 ?
 /*
 功 能:外部中斷線3中斷服務函數
 */
 void EXTI3_IRQHandler(void)
 {
  DelayMs(10);
  if(KEY1==0)
  {
 LED0=!LED0;
 LED1=!LED1;
   printf("KEY1\\r\\n");
  }
  EXTI- >PR|=1< 3; //清除中斷標志位
 }
 ?
 ?
 /*
 功 能:外部中斷線4中斷服務函數
 */
 void EXTI4_IRQHandler(void)
 {
  DelayMs(10);
  if(KEY0==0)
  {
 LED0=!LED0;
 LED1=!LED1;
   printf("KEY0\\r\\n");
  }
  EXTI- >PR|=1< 4; //清除中斷標志位
 }
 ?

main.c代碼

#include "stm32f4xx.h" // Device header
 #include "led.h"
 #include "delay.h"
 #include "key.h"
 #include "usart.h"
 #include "sys.h"
 #include "exti.h"
 ?
 ?
 int main(void)
 {
 LED_Init();
 KEY_Init();
 USART1_Init(84,115200);
 KEY_EXTI_Init();
 while(1)
 {
 
 }
 }
 ?

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led燈
    +關注

    關注

    22

    文章

    1595

    瀏覽量

    109335
  • 內核
    +關注

    關注

    3

    文章

    1408

    瀏覽量

    41089
  • 外部中斷
    +關注

    關注

    1

    文章

    133

    瀏覽量

    16100
  • STM32F407
    +關注

    關注

    15

    文章

    188

    瀏覽量

    30242
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    STM32F407 GPIO口輸入配置配置步驟

    介紹STM32F407新建寄存器工程流程,介紹輸入模式的配置方式,以按鍵為例完成按鍵輸入檢測。
    的頭像 發表于 07-06 14:28 ?3195次閱讀
    <b class='flag-5'>STM32F407</b> GPIO口輸入<b class='flag-5'>配置</b><b class='flag-5'>配置</b><b class='flag-5'>步驟</b>

    STM32F407 串口配置步驟

    介紹STM32F407串口配置步驟,完成串口的數據發送與接收、實現中斷接收,支持printf重定向。
    的頭像 發表于 07-06 14:29 ?4325次閱讀
    <b class='flag-5'>STM32F407</b> 串口<b class='flag-5'>配置</b><b class='flag-5'>步驟</b>

    STM32F407 位帶配置步驟

    介紹STM32F407位帶操作方法,設置寄存器的偏移量,實現按GPIO口指定位進行讀寫操作,方便編程。
    的頭像 發表于 07-06 14:30 ?1578次閱讀
    <b class='flag-5'>STM32F407</b> 位帶<b class='flag-5'>配置</b><b class='flag-5'>步驟</b>

    STM32F407 基本定時器使用

    介紹STM32F407基本定時器的配置方法,分別介紹輪詢方式、中斷方式使用定時器完成定時。
    的頭像 發表于 07-06 14:32 ?4217次閱讀
    <b class='flag-5'>STM32F407</b> 基本定時器使用

    STM32F407的22個外部中斷

    基礎概念STM32F4 的每個 IO 都可以作為外部中斷中斷輸入口,這點也是 STM32F4 的強大之處。
    發表于 08-13 09:35

    如何去使用STM32F407外部中斷

    STM32F407外部中斷有哪些呢?STM32F407外部中斷有哪些應用?
    發表于 10-26 06:20

    STM32F407 HAL庫的按鍵中斷配置步驟有哪些

    STM32F407 HAL庫的中斷管理是什么?STM32F407 HAL庫的按鍵中斷配置步驟有哪
    發表于 11-05 06:03

    有關STM32F407外部中斷基礎知識總結

    STM32F407中斷與事件有何區別呢?STM32F407外部中斷該怎樣去設置呢?
    發表于 11-16 07:13

    STM32F407外部中斷的一般配置步驟有哪些

    STM32F407中斷分為幾個組呢?STM32F407外部中斷的一般配置
    發表于 11-16 07:14

    STM32F407 UCOS III實驗

    STM32F407 UCOS III實驗,介紹基于STM32F407的UCOSIII實例,參考下
    發表于 09-22 14:08 ?82次下載

    STM32F407的串口UART 基礎配置STM32CubeMX

    STM32F407的串口UART 基礎配置STM32CubeMX
    發表于 11-29 16:06 ?56次下載
    <b class='flag-5'>STM32F407</b>的串口UART 基礎<b class='flag-5'>配置</b><b class='flag-5'>STM32</b>CubeMX

    STM32F407學習記錄---外部中斷實驗

    STM32F407學習記錄---外部中斷概述STM32F4外部中斷簡介硬件設計軟件設計概述將
    發表于 11-29 16:06 ?4次下載
    <b class='flag-5'>STM32F407</b>學習記錄---<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>實驗

    STM32F407開發板用戶手冊】第21章 STM32F407的NVIC中斷分組和配置(重要)

    STM32F407開發板用戶手冊】第21章 STM32F407的NVIC中斷分組和配置(重要)
    發表于 12-04 13:51 ?23次下載
    【<b class='flag-5'>STM32F407</b>開發板用戶手冊】第21章 <b class='flag-5'>STM32F407</b>的NVIC<b class='flag-5'>中斷</b>分組和<b class='flag-5'>配置</b>(重要)

    stm32f407如何配置外部中斷

    這幾天又重新學了stm32f4,遇到了一個外部配置的實驗,實驗內容僅作簡單的外部中斷,讀者只要搞懂其中的原理,稍微復雜的
    發表于 03-05 16:48 ?2884次閱讀

    STM32如何配置外部中斷STM32外部中斷配置步驟

    STM32如何配置外部中斷STM32外部中斷
    的頭像 發表于 10-26 17:47 ?4411次閱讀