嵌入式 > 技术百科 > 详情

STM8 外部中断配置方法

发布时间:2023-03-22 发布时间:
|

简介: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 )...


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},

};


注:在配置中断实以上三部缺一不可



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Intel Skylake新架构的秘密:逆超线程.单核猛增