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.

求教,在使用AFE4490芯片时,数据读不出来?

Other Parts Discussed in Thread: AFE4490

/****************************************************************************/
//*******函数名:SPIWriteData()
//*******用 途:SPI写数据
//*******参 数:Data:数据
//*******返回值:无
/****************************************************************************/
void SPIWriteBit(unsigned char Bit)
{
unsigned char i;
for(i=0;i<8;i++)
{
if(Bit&0x80)
{
SPI_SIM_1;
}
else
{
SPI_SIM_0;
}

Bit=Bit<<1; //右移写下一个
SPI_CLK_0;
delay_us(5);
SPI_CLK_1;
delay_us(5);
}
SPI_SIM_0;
}
/****************************************************************************/
//*******函数名:SPIReadBit()
//*******用 途:SPI读数据
//*******参 数:无
//*******返回值:返回当前读取的数据
/****************************************************************************/
unsigned char SPIReadBit(void)
{
unsigned char i;
unsigned char data=0;
for(i=0;i<8;i++)
{
data<<=1; //左移一位
if(IO_READ&0x01) //读取IO
{
data=(data|0x01); //写高
}
else
{
data=(data&0xFE); //写低
}
SPI_CLK_0;
delay_us(5);
SPI_CLK_1;
delay_us(5); //给个时钟脉冲周期
} //循环读数据
return data; //返回读取的数据
}
/****************************************************************************/
//*******函数名:SPIWriteData()
//*******用 途:SPI写数据
//*******参 数:Data:数据
//*******返回值:无
/****************************************************************************/
void SPIWriteData(unsigned long data,unsigned int Add)
{
unsigned char Temp;
SPI_STE_0;
delay_us(1);
SPIWriteBit(Add);
delay_us(1);
Temp=data>>16;
SPIWriteBit(Temp); //写数据
asm("nop");
Temp=data>>8;
SPIWriteBit(Temp);
asm("nop");
asm("nop");
SPIWriteBit(data);
delay_us(1);
SPI_STE_1;
}
/****************************************************************************/
//*******函数名:SPIReadData()
//*******用 途:SPI读数据
//*******参 数:ADD:地址数据
//*******返回值:数据
/****************************************************************************/
unsigned long SPIReadData(unsigned int Add)
{
unsigned long Value=0;
SPI_STE_0;
delay_us(10);
SPIWriteBit(Add); //写地址
delay_us(1);
SPIWriteData(0x00000001,0x00);                                                                  //允许读寄存器

Value |= SPIReadBit();
Value<<=8;
Value |= SPIReadBit();
Value<<=8;
Value |= SPIReadBit();
delay_us(10);
SPI_STE_1;
return Value;
}
/****************************************************************************/
//*******函数名:AfeInit()
//*******用 途:AFE初始化
//*******参 数:无
//*******返回值:无
/****************************************************************************/
void AfeInit(void)
{
Afe_IoInit(); //初始化IO配置
SPIWriteData(0x00000000,0x00);
SPIWriteData(0x00001770,0x01);
SPIWriteData(0x00001F3E,0x02);
SPIWriteData(0x00001770,0x03);
SPIWriteData(0x00001F3F,0x04);
SPIWriteData(0x00000000,0x05);
SPIWriteData(0x000007CE,0x06);
SPIWriteData(0x000007D0,0x07);
SPIWriteData(0x00000F9E,0x08);
SPIWriteData(0x000007D0,0x09);
SPIWriteData(0x00000F9F,0x0A);
SPIWriteData(0x00000FA0,0x0B);
SPIWriteData(0x0000176E,0x0C);
SPIWriteData(0x00000002,0x0D);
SPIWriteData(0x000007CF,0x0E);
SPIWriteData(0x000007D2,0x0F);
SPIWriteData(0x00000F9F,0x10);
SPIWriteData(0x00000FA2,0x11);
SPIWriteData(0x0000176F,0x12);
SPIWriteData(0x00001772,0x13);
SPIWriteData(0x00001F3F,0x14);
SPIWriteData(0x00000000,0x15);
SPIWriteData(0x00000000,0x16);
SPIWriteData(0x000007D0,0x17);
SPIWriteData(0x000007D0,0x18);
SPIWriteData(0x00000FA0,0x19);
SPIWriteData(0x00000FA0,0x1A);
SPIWriteData(0x00001770,0x1B);
SPIWriteData(0x00001770,0x1C);
SPIWriteData(0x00001F3F,0x1D);
SPIWriteData(0x00000101,0x1E);
SPIWriteData(0x00000000,0x1F);
SPIWriteData(0x00000000,0x20);
SPIWriteData(0x00000000,0x21);
SPIWriteData(0x0001BEBE,0x22);
SPIWriteData(0x00000000,0x23);
SPIWriteData(0x00000000,0x24);
SPIWriteData(0x00000000,0x25);
SPIWriteData(0x00000000,0x26);
SPIWriteData(0x00000000,0x27);
SPIWriteData(0x00000000,0x28);
SPIWriteData(0x00000000,0x29);
SPIWriteData(0x00000000,0x2A);
SPIWriteData(0x00000000,0x2B);
SPIWriteData(0x00000000,0x2C);
SPIWriteData(0x00000000,0x2D);
SPIWriteData(0x00000000,0x2E);
SPIWriteData(0x00000000,0x2F);
SPIWriteData(0x00000000,0x30); //初始化寄存器

}

求教,是不是软件那里出问题了。纠结的是现在不知道是软件问题还是程序问题,求支持

BloodOxygen0.2.zip