我要做门禁控制器,进行维根读卡的时候是采取的中断形式进行数据的采集。 这是中断处理程序,用的是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[count]=data; } 维根读卡器是26bit的,按理说wg_count最后收完数据应该是26,但是实际接收到的数总是变化的,从27~33之间不断的变,根本看不到26位,通过示波器我采到的确实是26bit数据。感觉再处理1次中断的时候程序可能最后进了好几次的中断,请大虾帮帮我来解决这个问题。 |