byte|=MISO;还是不清楚什么意思 (NRF24L01无线模块) 另外 return(byte);的值返回到哪里了

uchar SPI_RW(uchar byte)//写一个字节到nRF24L01,并返回此时nRF24L01的状态及数据
{
ucharbit_ctr;
for(bit_ctr=0;bit_ctr<8;bit_ctr++) //先写字节的高位,再写低位
{
MOSI = (byte & 0x80); //MOSI取byte最高位
byte = (byte << 1); //byte左移一位
SCK = 1; //SCK从高到低时开始写入
byte |= MISO;
//获取MISO位.从MOSI写命令的同时,MISO返回nRF24L01的状态及数据
SCK = 0;
}
return(byte);
}
另外如果没有 byte |= MISO;这句会怎样
uchar SPI_Read_Buf(BYTE reg, BYTE *pBuf, BYTE bytes)
在该函数中*pBUF是什么怎么用
希望能帮帮忙 感谢

byte|=MISO;//byte和MISO作位或运算
return的值返回到你调用该函数的地方,如在其它地方调用:uchar ch = SPI_RW(c);
此时函数返回值赋给ch,若直接调用函数 SPI_RW(c);,返回值将被抛弃追问

MISO的输出是谁的数据

追答

MISO应该是你无线模块中寄存器变量或者是I/O口线地址,这你要看你自己的无线模块

温馨提示:内容为网友见解,仅供参考
无其他回答

nrf24l01的GPIO的模拟SPI,程序MISO=1; byte |= MISO;这里是个什么意思...
你好:MISO=1;是吧MISO这个脚置为输入。byte |= MISO; 是吧byte的最低位或上MISO接收到的电平数据。这是吧byte的最低位赋值,但是上边有一句byte = (byte << 1);这样吧byte左移一位,下次再赋值时,byte的最低位就是新的一个数据了。不懂的回复。希望我的回答能帮助到你。

SPI_RW();是什么意思
SPI是收发同时进行的方式,主设备给从设备发送数据的同时,也能侦测从设备是否有数据要发送给主设备,byte |= MISO 这个语句就是接收从设备的数据,因为先给从设备发送了数据 MOSI = (byte & 0x80); 所以,在发送的同时接收数据的话,对数据本身没有影响 ...

nrf24l01接收程序有延时就不行了。。跪求原因
可能是你的单片机型号不一样把,所以内部分频不一样,是1T的还是12T的看一下数据手册,本来延时函数是可以调节的,也是可有可无的,当然必须结合实际的芯片时序图来规划,如果加了延时函数不行的话,简单,去掉就是了。也可以把50改小点试试看,比方说30,20,10等等。

nRF24l01无线模块 程序里有个头文件:#include<api.h> 谁知道,麻烦给下...
包含intrins.h这个文件,在C51单片机编程中,头文件INTRINS.H的函数使用起来,就会让你像在用汇编时一样简便.如果你要用到这个库文件里的函数的话,你就得包含它。比如你要用_irol_这个函数,你就得包含它,要不让编译器会找不到这个函数,就会报错。举例:include <intrins.h> main(){ unsigned i...

解释函数
详情请查看视频回答

...写一字节数据到从机,为什么还要读出一字节的数据?示例程序如下:_百度...
SPI协议中接收和发送数据是一体的,数据传输的线路为一个循环链路(loop).如果主机发送数据给从机,则必须从从机读取数据(即从机也发送数据到主机).同理,如果主机读取从机发来的数据,也必须同时发送数据给从机.总之,同一个时钟周期内,读和写2个操作都必须执行....

酒精含量检测仪(一种无线酒精浓度探测仪的研制)
该值与报警阈值比较,若结果是“大于”或“等于”,启动蜂鸣器发声程序,作声音报警,提示酒精浓度超标;接着该值在DM-162液晶模块上实时显示;最后判断放音键是否按下。若按下则根据酒精浓度值查找ISD2560中对应语音信息的存储地址开始放音;放音结束后,该值由nRF24L01发送程序发送到接收端;待发送完成后,采集、显示和发送...

相似回答