哪位高手用stm32搞过mfrc500

谁用stm32搞过mfrc500
void WriteRawIO(unsigned char Address,unsigned char value)
{
ALE=0;
RC500NCS=1;
//RC500NRD=0;
RC500NWR=1;
  // ALE=0;
P0(Address);
ALE=1;
delay_us(1) ;
ALE=0;
delay_us(1) ;
RC500NCS=0;
P0(value);
// delay_us(1);
RC500NWR=0;
delay_us(1) ;
    RC500NWR=1;
RC500NCS=1;


}

///////////////////////////////////////////////////////////////////////
// 从一个地址读出一个数据
///////////////////////////////////////////////////////////////////////
unsigned char ReadRawIO(unsigned char Address)
{
u8 value;
GPIO_InitTypeDef  GPIO_InitStructure;
//ALE=0;
RC500NCS=1;
RC500NRD=1;
    ALE=0;
P0(Address);
ALE=1;
delay_us(1);
ALE=0;
RC500NCS=0;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  //使能Pc端口时钟
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7; //端口变成输入
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; 
    GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIOC->IDR&=0xff;
RC500NRD=0;
delay_us(1);
    value=GPIOC->IDR;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  //使能Pc端口时钟
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7; //端口便成输出
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   //推挽输出
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOC, &GPIO_InitStructure);
    RC500NRD=1;
RC500NCS=1;
//delay_us(1);
return value;
}
单独测这个时序是正确的 组合到一块就发生错误,用串口测试的时候 第二次中断进不去
------解决方案--------------------
你好,你成功了么??