TDC7200读数一直是0

设置如下:

ENTDC一直为高电平。置高电平后有足够的延时。

SetClockCntrStopMask(400); //40us以后才开始采集停止信号

TDC_CS_L;
 WriteTDC7200(0x01); //addr
 WriteTDC7200(0x40); //single stop, 1 measure cycle only, measure 10 clock period
 TDC_CS_H;

 TDC_CS_L;
 WriteTDC7200(0x00); //addr
 WriteTDC7200(0x8b); //callibration, no parity, trig、start rising edge, stop falling edge,  mode 2, start measure
 TDC_CS_H;

读数据如下:

TDC_CS_L;
 WriteTDC7200(0x10); //addr
 MeaTime1=Read24bitTDC7200();
 TDC_CS_H;

TDC_CS_L;
 WriteTDC7200(0x11); //addr
 ClockCntr1=Read24bitTDC7200();
 TDC_CS_H;

TDC_CS_L;
 WriteTDC7200(0x12); //addr
 MeaTime2=Read24bitTDC7200();
 TDC_CS_H;

TDC_CS_L;
 WriteTDC7200(0x1b); //addr
 Calibration1=Read24bitTDC7200();
 TDC_CS_H;

TDC_CS_L;
 WriteTDC7200(0x1c); //addr
 Calibration2=Read24bitTDC7200();
 TDC_CS_H;

SPI驱动如下:

void WriteTDC7200(uint8_t dat)
{
 uint8_t i;
  for(i=0;i<8;i++)
 {
  TDC_CLK_L;
  if((0x80&dat)==0x80)
   TDC_DI_H;
  else
   TDC_DI_L;
  TDC_CLK_H;
  dat=dat<<1; 
 }
}

uint8_t Read8bitTDC7200(void)
{
 uint8_t i;
 uint8_t dat=0;
 uint32_t val;
 TDC_CLK_H;
 for(i=0;i<8;i++)
 {
  TDC_CLK_L; 
  dat=dat<<1;
  val=GPIO_ReadValue(TDC_DO_PORT);
  val=val & (1<<TDC_DO_PIN);
  if(val==(1<<TDC_DO_PIN))
   dat++;
  TDC_CLK_H;
 }
 return(dat); 
}

uint32_t Read24bitTDC7200(void)
{
 uint8_t i;
 uint32_t dat=0;
 uint32_t val;
 TDC_CLK_H;
 for(i=0;i<24;i++)
 {
  TDC_CLK_L; 
  dat=dat<<1;
  val=GPIO_ReadValue(TDC_DO_PORT);
  val=val & (1<<TDC_DO_PIN);
  if(val==(1<<TDC_DO_PIN))
   dat++;
  TDC_CLK_H;
 }
 return(dat); 
}

没有启用中断信号。在延时500us后,读取寄存器的值。START和STOP信号都很干净。

问题出在哪呢?