houmous 发表于 2012-5-3 15:39:58

STM32外部引脚中断如何操作

我要做门禁控制器,进行维根读卡的时候是采取的中断形式进行数据的采集。
这是中断处理程序,用的是PE3和PE4引脚接收数据
void EXTI3_IRQHandler(void)//WG21

 EXTI_ClearFlag(EXTI_Line3);
 EXTI_ClearITPendingBit(EXTI_Line3);
 WG_Handler(wg_count,1);
 wg_count++;
 w3_flag++;
}
void EXTI4_IRQHandler(void)//WG20

 EXTI_ClearFlag(EXTI_Line4);
    EXTI_ClearITPendingBit(EXTI_Line4);
WG_Handler(wg_count,0);
 wg_count++;
 w4_flag++;
}
void WG_Handler(uint8_t count,uint8_t data)
{
 WG_rxbuffer=data;
}
维根读卡器是26bit的,按理说wg_count最后收完数据应该是26,但是实际接收到的数总是变化的,从27~33之间不断的变,根本看不到26位,通过示波器我采到的确实是26bit数据。感觉再处理1次中断的时候程序可能最后进了好几次的中断,请大虾帮帮我来解决这个问题。
页: [1]
查看完整版本: STM32外部引脚中断如何操作