SPI的只读函数为啥这么神奇?

2020-01-26 12:43发布

各位大哥 我看了一个DEMO只读SI4432的数据是这样的 一下函数给形参为0X00 最后的返回值竟然不为0X00,跟着程序走了好几遍 感觉太奇怪了,有搞过SI4432的大哥又遇到过这个问题吗?
unsigned char spi_byte(unsigned char TRdata)
{
        unsigned char i;

        for (i = 0; i < 8; i++)                                // 控制SCK 和 SDI,发射一个字节的命令,同事读取1个字节的数据
        {                                                                        // 没有包括nSEL的控制
                if (TRdata & 0x80)
                        SDI = 1;
                else
                        SDI = 0;
                       
                TRdata <<= 1;
                SCK = 1;
                P1MDIN&=0XF6;
                if (SDO)
                        TRdata |= 0x01;
                else
                        TRdata &= 0xfe;
                       
                SCK = 0;
        }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
32条回答
ningting06
1楼-- · 2020-01-27 11:59
好吧 我代码没贴全了 少了个RETURN ,
ningting06
2楼-- · 2020-01-27 15:49
重新整理 这个程序形参为0X00在STC上跑是正确的返回值是一个指定的数,而在C8051上跑是错误的输出依然为0X00;
unsigned char spi_byte(unsigned char TRdata)
{
        unsigned char i;
       
        for (i = 0; i < 8; i++)                                // 控制SCK 和 SDI,发射一个字节的命令,同事读取1个字节的数据
        {                                                                        // 没有包括nSEL的控制
                if (TRdata & 0x80)
                        SDI = 1;
                else
                        SDI = 0;
                       
                TRdata <<= 1;
                SCK = 1;
               
                if (SDO)
                        TRdata |= 0x01;
                else
                        TRdata &= 0xfe;
                       
                SCK = 0;
        }
       
        return (TRdata);
}
ningting06
3楼-- · 2020-01-27 21:07
bailangcn 发表于 2013-11-11 00:57
有什么奇怪的呢?

非常奇怪 代码已补全 请留意跟帖
ningting06
4楼-- · 2020-01-28 00:14
 精彩回答 2  元偷偷看……
ningting06
5楼-- · 2020-01-28 01:36
hyghyg1234 发表于 2013-11-11 09:04
你干嘛理会它的值呢

这个值我拿他有用哈 代码已贴全 请留意跟帖
hdd961140543
6楼-- · 2020-01-28 02:05
弱弱的问一下,什么是只读SPI?

一周热门 更多>