初级会员
- 积分
- 82
- 金钱
- 82
- 注册时间
- 2014-4-1
- 在线时间
- 0 小时
|
5金钱
<div>
<img src="file://C:\Users\dengyuxin\Documents\Tencent Files\1468447030\Image\4_L@KB)UNRV7W9J8[$}A@Q6.jpg" />
<div>
<img src="file://C:\Users\dengyuxin\Documents\Tencent Files\1468447030\Image\4_L@KB)UNRV7W9J8[$}A@Q6.jpg" />
</div>
u8 NRF24L01_Read_Reg(u8 reg)<br />
{<br />
u8 reg_val; <br />
NRF24L01_CSN = 0; //使能SPI传输 <br />
SPIx_ReadWriteByte(reg); //发送寄存器号<br />
reg_val=SPIx_ReadWriteByte(<span style="background-color:#FFE500;">0XFF</span>);//读取寄存器内容<br />
NRF24L01_CSN = 1; //禁止SPI传输 <br />
return(reg_val); //返回状态值<br />
} <br />
在nrf24L01z中 <span style="font-family:SimSun;background-color:#FFE500;">0xff是空操作指令</span>,可以用来读取状态寄存器的值怎么理解?<br />
根据NRF24L01读操作时序,MIS0 先是S7~S0 ,Sn代表状态寄存器位,然后接着是D7~D0表示数据,<br />
这个函数里面怎么不要把状态寄存器位除掉呀,<br />
状态寄存器位表示的是STATUS寄存器(地址为0x07)里面的值吗?<br />
</div> |
最佳答案
查看完整内容[请看2#楼]
这不是一个指令,而是用于维持MOSI的电平.
SPIx_ReadWriteByte(0xff); //启动传输
这里其实就是发送8个时钟给从设备.而MOSI一直维持高电平.当然你也可以维持低电平,写0X00就可以.不过通常的做法是维持高.
|