在线时间2 小时
UID326055
ST金币0
蝴蝶豆0
注册时间2011-11-2
新手上路
- 最后登录
- 2020-7-28
|
a0a.1 0b0c
我要做门禁控制器,进行维根读卡的时候是采取的中断形式进行数据的采集。
这是中断处理程序,用的是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次中断的时候程序可能最后进了好几次的中断,请大虾帮帮我来解决这个问题。 |
|