This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS1274数据读取问题

Other Parts Discussed in Thread: ADS1274

本人想使用ADS1274的高速模式来传输数据,采用FRAME-SYNC传输格式,接收的数据不正常。现在改为测试低速模式,SPI传输格式,示波器观察波形,都正确,但读出的数据依然不对。MCU用的是STM32F103ZE,模拟的SPI时序

int SPI_Read(void)
{
   u8 i;
   u8 Temp_byte = 0;
   int Result = 0;
  
   ADS1274_SCLK = 0;      //    SCK=1;
   Delay_Us(1);    
   ADS1274_SCLK = 1;
   for(i=0;i<24;i++)
   {   
   Delay_Us(1);
   ADS1274_SCLK = 0;     
   Delay_Us(1);  
      ADS1274_SCLK = 1;
    Temp_byte = ADS1274_SDO ;
   Result  = (int)Result <<1 ;
   Result +=  Temp_byte ;
   }
   Delay_Us(1);
   ADS1274_SCLK = 0;                           
   return(Result); 

}该读数据时序在外部中断函数中执行(DRDY产生中断)。

十六进制数转为电压值的函数为:

buffer_1 = SPI_Read( );

if( buffer_1&0x800000)
   {
    dTmp = 0xffffff - buffer_1;
    dTmp = -dTmp;
   }
   else dTmp = buffer_1 ;
   dTmp = dTmp/0x7fffff;
   dTmp *= 2.5;
   /*if(dTmp == 0)
   {
    __nop();
   } */
   //printf("buffer_1 = %x\n\r",buffer_1);
   printf("V = %lf\n\r",dTmp);