关于NRF24L01遇到的问题,各位朋友帮忙

2019-07-15 21:40发布

学习NRF24L01遇到好多问题,最不懂的就是SPI写时序函数,这是我在网上看到的代码,他们都这样写
/***************************************************************************
函数名称:SPI写时序函数
函数功能:NRF24L01的SPI写时序
***************************************************************************/
sbit MOSI=P1^0;
sbit MISO=P1^1;
.
.
.省略其它程序,看重点的     
uchar SPI_RW(uchar dat)
{
        uchar i;
           for(i=0;i<8;i++)
           {
                MOSI = (dat & 0x80);         
                dat = (dat << 1);           
                SCK = 1;                     
                dat |= MISO;               //看不懂为什么这样写
                SCK = 0;                              
           }
    return(dat);                   //***********不知道返回什么************//          
}

问题1:在网上看到,NRF24L01模块是全双工传输,在MOSI装好数据的同时,模块也将自己的状态信息放在MISO上,当时钟线置1,模块接收与发送数据。可是MISO发来的数据是什么?是STATUS状态寄存器的值吗?
问题2:dat |= MISO; dat为什么要这样写?这又跟第一个问题有关了,究竟MISO是什么信息。还有返回值dat是什么?有什么用?
麻烦路过的朋友发表一些见解,有时候看评论会激发很多灵感的。在下感激不尽!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
limengmingx
1楼-- · 2019-07-17 00:52
找TX_BUF,或者是RX_BUF
1301120829
2楼-- · 2019-07-17 05:45
 精彩回答 2  元偷偷看……
zitisky
3楼-- · 2019-07-17 10:54
怎么看不到别人回复?我最近也在学这个,觉得那个MISO的输入是由下位机输入的,而data返回的正是下位机输入的一个字节的数据
1301120829
4楼-- · 2019-07-17 15:54
zitisky 发表于 2013-12-1 21:14
怎么看不到别人回复?我最近也在学这个,觉得那个MISO的输入是由下位机输入的,而data返回的正是下位机输入 ...

是状态寄存器的值
1301120829
5楼-- · 2019-07-17 21:04
是状态寄存器的值

看第二行,Sn-状态寄存器的值

看第二行,Sn-状态寄存器的值
1301120829
6楼-- · 2019-07-17 22:27
现在已经把基本功能调好了

将左边时钟芯片读到的数据通过无线模块传到右边的1602显示出来

将左边时钟芯片读到的数据通过无线模块传到右边的1602显示出来

接收到的数据

接收到的数据

一周热门 更多>