一颗AD,型号LMP90100,IO模拟SPI
设置ad的寄存器是没有问题的,读取的时候一直读不到数据,求助
芯片时序图如下:
读取代码如下(先写一个自己,在读一个字节,这个是依据的时序图,算是通信协议吧,代码中有一行被注释掉了,那个是时序上的一种尝试,结果是一样的,都读不出数据):
uint8_t i,j,temp,num=0x80;
temp=0;
SPICLK(1);
for(i=0;i<8;i++) //写一个字节指令
{
if(data & num)
MOSI(1);
else
MOSI(0);
SPICLK(0);
Delay_ms(1);
SPICLK(1);
Delay_ms(1);
if(num>0x01)
num>>=1;
}
SPICLK(0);
Delay_ms(1);
for(i=0;i<8;i++)//读一个字节数据
{
SPICLK(1);
if(MISO())
temp++;
//SPICLK(1);
Delay_ms(1);
SPICLK(0);
Delay_ms(1);
if(i<7)
temp<<=1;
}
SPICLK(1);
return temp;
|