外部中斷配置
阿新 • • 發佈:2018-11-10
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)
{
//
}