色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美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

    文章

    1593

    瀏覽量

    108812
  • 內核
    +關注

    關注

    3

    文章

    1392

    瀏覽量

    40610
  • 外部中斷
    +關注

    關注

    1

    文章

    132

    瀏覽量

    15936
  • STM32F407
    +關注

    關注

    15

    文章

    188

    瀏覽量

    29820
收藏 人收藏

    評論

    相關推薦

    STM32F407 GPIO口輸入配置配置步驟

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

    STM32F407 基本定時器使用

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

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

    STM32如何配置外部中斷STM32外部中斷
    的頭像 發表于 10-26 17:47 ?4022次閱讀
    主站蜘蛛池模板: 国产精品系列在线观看 | 91久久偷偷做嫩草影院免 | 国产精品一区二区制服丝袜 | 国产精品青青在线麻豆 | 伊人久久精品AV一区二区 | 国产精品久久久亚洲偷窥女厕 | 国产人成高清在线视频99 | 晚夜免费禁用十大亏亏 | 国产午夜精品AV一区二区麻豆 | 日韩一区二区三区免费体验 | 亚洲综合AV色婷婷五月蜜臀 | 久久热国产在线视频 | 中文字幕在线免费观看视频 | 中文字幕在线不卡日本v二区 | 羞羞影院午夜男女爽爽影院网站 | 久久精品视在线观看2 | 456亚洲人成在线播放网站 | 日韩欧美一区二区三区免费看 | 二级片免费看 | 免费毛片在线视频 | 草莓视频免费在线观看 | 国产一区私人高清影院 | 男男免费看 | 99久久精品国产自免费 | 99久久久精品 | 中文字幕本庄优花喂奶 | 久久99亚洲AV无码四区碰碰 | 琪琪电影午夜理论片YY6080 | 国产主播福利一区二区 | 王晶经典三级 | 99在线视频免费观看视频 | 97超碰在线视频 免费 | 蜜柚视频网在线观看免费 | 国产成人亚洲精品无广告 | 深夜释放自己污在线看 | 丰满的女朋友韩国版在线观看 | 广东95后小情侣酒店自拍流出 | 精品午夜中文字幕熟女人妻在线 | 中文字幕亚洲欧美日韩2o19 | 99在线播放| 国产一在线精品一区在线观看 |