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);
是不是结果是实际值的 2 倍 ?
开始为什么多发一个脉冲,注意时序中, DOUT 在下降沿后就输出数据了。
根据这句话。
请问你这个问题解决了没有?我现在遇到了一个和你一样的问题?能不能请教下,谢谢!