智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1190|回复: 1
打印 上一主题 下一主题

[单片机] SPI读回的数据全是0,这是什么问题啊?

[复制链接]

13

主题

183

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1141

热心会员奖章活跃会员奖章优秀会员奖章

威望
666
贡献
335
兑换币
143
注册时间
2011-4-2
在线时间
70 小时
跳转到指定楼层
1#
发表于 2013-10-20 15:08:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
在用模拟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;

9

主题

105

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3330
威望
1586
贡献
960
兑换币
1031
注册时间
2013-4-26
在线时间
392 小时
2#
发表于 2013-10-20 17:30:52 | 只看该作者
                if (SDO)
                        data |= 0x01;
                else
                        data &= 0xfe;

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-11-6 13:49 , Processed in 0.037713 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表