外部中断---STM32F1
生活随笔
收集整理的這篇文章主要介紹了
外部中断---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)
對于每個中斷線,我們可以設置相應的觸發方式以及使能,觸發方式有三種:
一共16個外部中斷線,STM32是否分配16個中斷處理函數呢?
答案是否定的,外部中斷在中斷向量表中只分配了7個中斷向量,也就是說16個外部中斷只分配了7個外部中斷服務函數
外部中斷線5-9分配一個中斷向量,外部中斷線15-10分配一個中斷向量
中斷服務函數如下:
外部中斷常用庫函數
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()總結
以上是生活随笔為你收集整理的外部中断---STM32F1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 端口复用和重映射--STM32F103
- 下一篇: 求解,为什么改良星星弹在决斗场里不追踪,