智能车制作

标题: SPI读回的数据全是0,这是什么问题啊? [打印本页]

作者: qaabq    时间: 2013-10-20 15:08
标题: SPI读回的数据全是0,这是什么问题啊?
在用模拟SPI和Si4432通讯的时候,从Si4432中读回的数据全是0,这是什么原因啊?
unsigned char spi_byte(unsigned char data)
{
        unsigned char i;
        for (i = 0; i < 8; i++)// 控制SCK 和 SDI,发射一个字节的命令,同事读取1个字节的数据
        {                                       // 没有包括nSEL的控制
                if (data & 0x80)
                        SDI = 1;
                else
                        SDI = 0;

                data <<= 1;
                SCK = 1;

                if (SDO)
                        data |= 0x01;
                else
                        data &= 0xfe;

                SCK = 0;
        }
        return (data);
}

SCK = 0;
nSEL = 0;
spi_byte(0x7f);
for(i = 0;i<10;i++)        
{
         rx_buf = spi_byte(0xFF);
}
nSEL = 1;


作者: 月亮好圆    时间: 2013-10-20 17:30
                if (SDO)
                        data |= 0x01;
                else
                        data &= 0xfe;

                建议楼主把上面这一块改为:
                date|=SDO;可以试一下,本人菜鸟,之前这样用过,正常




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2