有个产品 STM8L052 用PG6和PG7做中断,因为PD6 PE7 也做了外部中断,所以把PG6和PG7做到EXITB/G中断中
现在PG6 PG7做的是悬浮中断 外部电阻下拉到地 中断为上升沿中断触发
目前测试的现象是:1\ PG6 PG7配置为悬浮中断上升沿触发可以进EXIT0~EIXT7中断
2\PG6 PG7配置为悬浮中断上升沿触发单独进不了EXITB/G中断
3\PG6 PG7配置为悬浮中断上升沿触发 两个端口同时给高电平可以进中断
麻烦各位给我分析下原因,为什么进步了中断
关键代码如下:
#define pluse1_input PG_IDR_6
#define pluse1_input_ddr PG_DDR_6
#define pluse1_input_cr1 PG_CR1_6
#define pluse1_input_cr2 PG_CR2_6
#define pluse2_input PG_IDR_7
#define pluse2_input_ddr PG_DDR_7
#define pluse2_input_cr1 PG_CR1_7
#define pluse2_input_cr2 PG_CR2_7
/////////以上为定义部分//////////////////
pluse1_input_ddr=0;//悬浮中断//
pluse1_input_cr1=0;
pluse1_input_cr2=1;
pluse2_input_ddr=0;
pluse2_input_cr1=0;
pluse2_input_cr2=1;
EXTI_CR4=0b00000001;//00下降或者低 01上升 10下降 11上升或者下降//
EXTI_CONF2=0x26; //设置PG中断到exitiG,并使能B还是G脚,这个很重要//
EXTI_SR1=0x00; // 清Portx 中断//
EXTI_SR2=0x00; // 清PortB g 中断//
//////以上为配置部分/////////
{0x82, portg_inter_irq}, /* irq6 */(这个是中断向量)
@far @interrupt void portg_inter_irq(void)(这个是中断部分)
{
EXTI_SR2 |=0x0ff;
return;
}
//////////以上为中断和中断向量部分/////////////////
|