專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> STM32 >> 瀏覽文章

STM8 外部中斷配置方法

作者:huqin   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年05月01日   【字體:

1:引用STM8 的中斷庫

  #include "stm8s_exti.h"

2:配置外部中斷的觸發(fā)管腳

GPIO_Init(LEDS_PORT,MB,GPIO_MODE_IN_FL_IT );

或者

GPIO_Init(LEDS_PORT,MB,GPIO_MODE_IN_PU_IT );

3:初始化中斷

EXTI_DeInit();

EXTI_SetTLISensitivity(EXTI_TLISENSITIVITY_RISE_ONLY);//下降沿觸發(fā)中斷
EXTI_SetExtIntSensitivity((EXTI_PORT_GPIOD),EXTI_SENSITIVITY_RISE_ONLY);

 

4:中斷服務(wù)子程序的配置

(1)外部定義中斷服務(wù)子程序

@far @interrupt void EXTI3 (void)

{
  disableInterrupts();
  counter ();
  enableInterrupts();
}

(2)聲明外部中斷子程序

extern void EXTI3 ();

(3)配置外部中斷子程序向量表

struct interrupt_vector const _vectab[] = {
 {0x82, (interrupt_handler_t)_stext},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, EXTI3              },
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, TIM2_UPD_OVF_TRG_IRQHandler },
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, UART_RI            },
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
 {0x82, NonHandledInterrupt},
};

注:在配置中斷實(shí)以上三部缺一不可

關(guān)閉窗口

相關(guān)文章