完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
大家好,我刚开始学习nRF,是个菜鸟,有个很简单的问题想要请教大神们:
下面这个函数中有几句代码我不太理解,为什么要把MOSI的最高位置1,temp又是干嘛用的? /**************************************************************************************************** 函数:uint SPI_RW(uint uchar) 功能:NRF24L01的SPI写 ***************************************************************************************************/ char SPI_RW(char data) { char i,temp=0; for(i=0;i<8;i++) // output 8-bit { if(data & 0x80) { Hign_24L01_MOSI ; // output 'uchar', MSB to MOSI } else { Low_24L01_MOSI; } data = (data << 1); // shift next bit into MSB.. temp<<=1; Hign_24L01_SCK ; // Set SCK high.. if(Read_24L01_MISO )temp++; // capture current MISO bit Low_24L01_SCK; // ..then set SCK low again } return(temp); // return read uchar } |
|
相关推荐
3个回答
|
|
char SPI_RW(char data)
{ char i,temp=0; for(i=0;i<8;i++) // output 8-bit { if(data & 0x80) //最高位为1的话 就个从机发1 否则发0 通过这几句就可以向从机发送数据的最高位 Hign_24L01_MOSI ; else Low_24L01_MOSI; data = (data << 1); // 把数据的低一位移至最高位以备发送 temp<<=1; Hign_24L01_SCK ; //拉高拉低写入数据 if(Read_24L01_MISO )temp++;//从 从机读取一位值然后跟 temp<<=1; //合起来实现读取八位从机向主机发送的数据 Low_24L01_SCK; } return(temp);//最后将八位集合为一个字节返回出来 } |
|
|
|
a=(a<<1)与a<<=1表达的意思一样吗?
|
|
|
|
我对此问题也不明白 希望能明白
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 22:18 , Processed in 0.528701 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号