日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

外部中断---STM32F1

發布時間:2023/12/1 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 外部中断---STM32F1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

外部中斷概述

STM32的中斷控制器支持19個外部中斷/事件請求:

  • 線0-15:對應外部IO口的輸入中斷
  • 線16:連接到PVD輸出
  • 線17:連接到RTC鬧鐘事件
  • 線18:連接到USB喚醒事件

STM32每個IO口都有可以作為外部中斷輸入,IO口有很多,STM32供IO使用的中斷線只有16個,那么中斷線怎么跟IO口對應呢?
這個時候就要用到端口重映射了

GPIOx.0映射到EXTI0(外部中斷線0)
GPIOx.1映射到EXTI1(外部中斷線1)

GPIOx.15映射到EXTI15(外部中斷線15)
怎么使用函數把GPIO口映射到外部中斷線呢?
GPIO_EXTILineConfig可以配置,比如說把PE2映射到EXTI2(中斷線2)

GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);//PE2映射到中斷線2

對于每個中斷線,我們可以設置相應的觸發方式以及使能,觸發方式有三種:

  • 上升沿觸發
  • 下降沿觸發
  • 邊沿觸發
  • 一共16個外部中斷線,STM32是否分配16個中斷處理函數呢?
    答案是否定的,外部中斷在中斷向量表中只分配了7個中斷向量,也就是說16個外部中斷只分配了7個外部中斷服務函數

    外部中斷線5-9分配一個中斷向量,外部中斷線15-10分配一個中斷向量
    中斷服務函數如下:

    EXTI0_IRQHandler EXTI1_IRQHandler EXTI2_IRQHandler EXTI3_IRQHandler EXTI4_IRQHandler EXTI9_5_IRQHandler EXTI15_10_IRQHandler

    外部中斷常用庫函數

    void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);//設置IO口與中斷線的映射關系exp: GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct); //初始化中斷線:觸發方式等ITStatus EXTI_GetITStatus(uint32_t EXTI_Line); //判斷中斷線中斷狀態,是否發生void EXTI_ClearITPendingBit(uint32_t EXTI_Line); //清除中斷線上的中斷標志位

    外部中斷庫函數設置

    1.使能外設以及初始化IO口為輸入

    GPIO_Init()
  • 開啟IO口復用時鐘
  • RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE)
  • 設置IO口與中斷線的映射關系
  • void GPIO_EXTILineConfig();
  • 初始化線上中斷,設置觸發條件等
  • EXTI_Init();
  • 配置中斷分組(NVIC),并使能中斷
  • NVIC_Init();
  • 編寫中斷服務函數
  • EXYIx_IRQHandler();
  • 清除中斷標志位
  • EXTI_ClearITPendingBit();

    總結

    以上是生活随笔為你收集整理的外部中断---STM32F1的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。