完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
`学习NRF24L01遇到好多问题,最不懂的就是SPI写时序函数,这是我在网上看到的代码,他们都这样写 /*************************************************************************** 函数名称:SPI写时序函数 函数功能:NRF24L01的SPI写时序 ***************************************************************************/ ***it MOSI=P1^0; ***it 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个回答
|
|
|
dat |= MISO理解为:dat = dat初值 | MISO的值
|
|
|
|
|
|
MISO究竟是什么,24L01是全双工的,指令一个字节,是一位一位地发的,指令还没发完,就有数据传回来,觉得好奇怪,那这个数据究竟是什么呢? |
|
|
|
|
|
芯片资料上有~.....................................................................
|
|
|
|
|
|
芯片手册上有时序图,照着时序图看就能看明白了。
http://www.9mcu.com/9mcubbs/foru ... p;extra=#pid1013951 这个是我以前做的无线例程,里面也是模拟的SPI接口,希望能帮到你 |
|
|
|
|
|
很好的东西。。。。。。。。。。。。
|
|
|
|
|
|
这两天我也在看NRF24L01的无线模块
uchar SPI_RW(uchar byte) { uchar i; for(i=0; i<8; i++) // 循环8次 { MOSI = (byte & 0x80); // byte最高位输出到MOSI byte <<= 1; // 低一位移位到最高位 SCK = 1; // 拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据 byte |= MISO; // 读MISO到byte最低位 SCK = 0; // SCK置低 } return(byte); // 返回读出的一字节 } 因为SPI是全双工的可以放一个取一个,但他发的是什么我还没理解,希望能帮助你。。。 |
|
|
|
|
|
找TX_BUF,或者是RX_BUF
|
|
|
|
|
|
它读回来的是不是STATUS状态寄存器的值? |
|
|
|
|
|
怎么看不到别人回复?我最近也在学这个,觉得那个MISO的输入是由下位机输入的,而data返回的正是下位机输入的一个字节的数据
|
|
|
|
|
|
是状态寄存器的值 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
最近再弄这个无线模块的温度采集,发射端没问题了,可是接收端1602没有显示任何东西,想请教楼主,如何调试
|
|
|
|
|
|
接收端初始化时要设置为接收模式,即SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); //此后就不要更改它, CE = 1; //确保它一直处于接收模式 然后再while循环里面判断IRQ是不是等于0, while(1) { if(IRQ==0) { 这里写接收数据后数据的处理,就是将它存放在你自定义的数组里 记得将IRQ清0; } } 为什么这样写,你得去查看模块说明书,在CONFIG寄存器第六位那里说,RX_DR产生中断会置IRQ为低电平, 这就说明接收到数据会置IRQ为低电平,而你在while循环前又是设置为接收模式,就是一直处于接收,一有数 据到来就置IRQ为低电平。 不知能不能解答你的问题。 |
|
|
|
|
1301120829 发表于 2013-12-10 12:24 谢谢楼主了 ,我试试看先 |
|
|
|
|
|
|
|
|
|
|
|
先搞明白spi如何通信
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【瑞萨RA6E2】瑞萨E2S软件安装过程,等待过程玩下97_e2 studio_ZGZZ
140 浏览 0 评论
483 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
815 浏览 0 评论
1346 浏览 2 评论
804 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16903 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 14:47 , Processed in 1.754847 second(s), Total 107, Slave 87 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1461