標題: STM8外部中斷配置詳解 [打印本頁]
作者: jialinx 時間: 2015-9-14 12:56
標題: STM8外部中斷配置詳解
1:引用STM8 的中斷庫
#include "stm8s_exti.h"
2:配置外部中斷的觸發管腳
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);//下降沿觸發中斷
EXTI_SetExtIntSensitivity((EXTI_PORT_GPIOD),EXTI_SENSITIVITY_RISE_ONLY);
4:中斷服務子程序的配置
(1)外部定義中斷服務子程序
@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},
};
注:在配置中斷實以上三部缺一不可
| 歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |