色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

    文章

    1592

    瀏覽量

    108112
  • 內核
    +關注

    關注

    3

    文章

    1376

    瀏覽量

    40319
  • 外部中斷
    +關注

    關注

    1

    文章

    132

    瀏覽量

    15837
  • STM32F407
    +關注

    關注

    15

    文章

    188

    瀏覽量

    29524
收藏 人收藏

    評論

    相關推薦

    STM32F407 GPIO口輸入配置配置步驟

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

    STM32F407 基本定時器使用

    介紹STM32F407基本定時器的配置方法,分別介紹輪詢方式、中斷方式使用定時器完成定時。
    的頭像 發表于 07-06 14:32 ?3443次閱讀
    <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次下載

    STM32CubeMX 配置STM32F407 實現HAL庫延時微妙方案

    STM32CubeMX 配置STM32F407 實現HAL庫延時微妙方案
    發表于 11-24 20:51 ?20次下載
    <b class='flag-5'>STM32</b>CubeMX <b class='flag-5'>配置</b><b class='flag-5'>STM32F407</b> 實現HAL庫延時微妙方案

    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 ?21次下載
    【<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 ?2513次閱讀

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

    STM32如何配置外部中斷STM32外部中斷
    的頭像 發表于 10-26 17:47 ?3700次閱讀
    主站蜘蛛池模板: 久久综合色一综合色88中文| 四虎永久免费| 亚洲涩福利高清在线| 精品AV综合导航| 在线观看亚洲 日韩 国产| 理论片午午伦夜理片I| 中文字幕一区中文亚洲| 嫩草影院在线观看网站成人| 超大号黑吊magnet| 小p孩玩成年女性啪啪资源| 久久re这里精品在线视频7| 99久久久A片无码国产精| 手机看片国产日韩欧美| 九九热视频 这里有精品| a亚洲在线观看不卡高清| 无人区在线日本高清免费| 精品国产5g影院天天爽| 99久久精品毛片免费播放| 乌克兰成人性色生活片| 久久热免费视频| 成人小视频在线免费观看| 亚洲免费人成在线视频观看| 女子初尝黑人巨嗷嗷叫| 国产成人精视频在线观看免费 | 奶水太多h室友| 国产精品JIZZ在线观看A片| 优菈的乳液狂飙天堂W98| 三级黄色在线观看| 久久精品亚洲AV中文2区金莲| 成人免费在线| 宅男午夜大片又黄又爽大片| 视频一区视频二区ae86| 毛片免费在线播放| 国产又色又爽又刺激在线播放| 99精品热视频30在线热视频| 亚洲黄色录像片| 日本XXXXZZX片免费观看| 久久内在线视频精品mp4| 国产情侣真实露脸在线| 被高跟鞋调教丨vk| 真实国产精品视频国产网|