外部中斷常用庫函式:
①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
);//
清除中斷線上的中斷標誌位
exti_init
函式:
void
exti_init
(exti_inittypedef
*exti_initstruct);
typedef
struct
exti_inittypedef
exti_initstructure.exti_line
=exti_line2;
exti_initstructure.exti_mode
= exti_mode_interrupt
;
exti_initstructure.exti_trigger
= exti_trigger_falling;
exti_initstructure.exti_linecmd
= enable;
exti_init
(&exti_initstructure);
外部中斷的一般配置步驟:①
初始化io口為輸入。
gpio_init
();
②開啟io口復用時鐘。
rcc_apb2periphclockcmd(rcc_apb2periph_afio,enable); ③
設定io口與中斷線的對映關係。
void
gpio_extilineconfig
();
④ 初始化線上中斷,設定觸發條件等。
exti_init
();
⑤ 配置中斷分組(
nvic
),並使能中斷。
nvic_init
();
⑥
編寫中斷服務函式。
extix_irqhandler
();
⑦ 清除中斷標誌位
exti_clearitpendingbit
();
以下提供的只是部分**:
void extix_init(void)
void exti4_irqhandler(void)
exti_clearitpendingbit(exti_line4);
}int main(void)
}
STM32外部中斷
一 基本概念 arm coetex m3核心共支援256個中斷,其中16個內部中斷,240個外部中斷和可程式設計的256級中斷優先順序的設定。stm32目前支援的中斷共84個 16個內部 68個外部 還有16級可程式設計的中斷優先順序的設定,僅使用中斷優先順序設定8bit中的高4位。stm32可支援...
stm32外部中斷
外部中斷程式配置流程 rcc 時鐘配置 void rcc configuration void 時鐘配置 開啟各路時鐘 rcc apb2periphclockcmd rcc apb2periph usart1 rcc apb2periph gpioa rcc apb2periph afio,enab...
stm32外部中斷
好久沒玩微控制器了,最近閒著沒事想拿出來玩玩,沒想到乙個stm32的外部中斷讓我花費了兩天時間,好的的挫折啊!終於下午除錯成功,下面來說一下我的除錯之路吧!硬體就是兩個按鍵,四個led,led事共陽極接法,按鍵一端接地一端接gpio口,通過按鍵中斷控制led。程式寫好以後發現始終無法進入中斷,開始查...