c51模拟SPI读AD问题求教
时间:10-02
整理:3721RD
点击:
c51单片机用SPI模拟读MAX191这个AD,出来全是0,程序:
uint Max191(void)
{
char i;
uint buff=0;
Max191_clk=1;
Max191_cs=1;
delay_key(1);
_nop_();
_nop_();
_nop_();
_nop_();
Max191_cs=0;
delay_key(1);
Max191_clk=1;
for(i=0;i<16;i++)
{
buff<<=1;
Max191_clk=1;
delay_key(1);
buff|=Max191_do;
Max191_clk=0;
delay_key(1);
}
Max191_cs=1;
// buff=buff>>3;
buff&=0x0fff;
return buff;
}
while(1)
{
aa=Max191();
b[0]=0xff;
b[1]=aa/256;
b[2]=aa%256;
txdd(b,3);
delay_key(2 );
}
uint Max191(void)
{
char i;
uint buff=0;
Max191_clk=1;
Max191_cs=1;
delay_key(1);
_nop_();
_nop_();
_nop_();
_nop_();
Max191_cs=0;
delay_key(1);
Max191_clk=1;
for(i=0;i<16;i++)
{
buff<<=1;
Max191_clk=1;
delay_key(1);
buff|=Max191_do;
Max191_clk=0;
delay_key(1);
}
Max191_cs=1;
// buff=buff>>3;
buff&=0x0fff;
return buff;
}
while(1)
{
aa=Max191();
b[0]=0xff;
b[1]=aa/256;
b[2]=aa%256;
txdd(b,3);
delay_key(2 );
}
一、将外部的MOSI 与MISO短接,自已发自己收,看收到的与你发的是不是一样。
二、检查芯片手册,看看协议对不对。
三、检查外部电路连接对不对。