1. 程式人生 > >外部中斷配置

外部中斷配置

1.明確要使哪個埠作為觸發。(以PA0為例)

   因為是PA0,所以應當開啟外部中斷線0.

程式碼如下:    EXTI->IMR |= 1 << 0;  //開啟外部中斷線0


2.設定觸發方式:上升沿出發和下降沿出發可一起設定。任一邊沿觸發均可進入中斷。

    EXTI->RTSR |= 1 << 0;//上升沿觸發

    EXTI->FTSR |= 1 << 0;//下降沿觸發


3.配置外部中斷優先順序

Set_NVICPriority(EXTI0_IRQn,2,2);


4.使能AFIO複用功能暫存器

    

RCC->APB2ENR |=1<<0;

前面我們已經打開了外部中斷0,即我們用的是EXTI0,所以在AFIO_EXCR1中找。又因為我們要的是PA口,故給EXTI0[3...0]賦值0000.

AFIO->EXTICR[0] &= ~(0x0F << (0 * 4));  ///先清零

AFIO->EXTICR[0] |= 0x00<<4;         //選擇PA口

5.編寫外部中斷服務函式

 

void  EXTI0_IRQHandler(void)

{

//

}