myqiang1990 发表于 2010-6-16 23:35:03

AT89S52控制两个NRF24L01可以发送和接收,但要单片机重新上电后才能接收,单片机复位就

我用AT89S52控制两个NRF24L01模块,现在可以发送和接收了,但是要单片机重新上电后才能接收,单片机复位后马上就接收不到!!只有单片机重新上电才可以接收!这是为何??代码就不传了。。大家就经验说说就行。。。

以下蓝色文字由站长:armok 于:2010-06-17,12:55:08 加入。你的原标题:“<font color=black>NRF24L01奇怪现象!” 不合符规定。请更改成能说明帖子大意的标题
试想一下,如果本论坛的帖子标题清一色的‘帮助!’,‘ADC求救!’等笼统的标题,你在阅读的过程中会造成许多麻烦。
所以本论坛规定:一定要起一个能说明帖子大意的标题。不允许“关于 AVR 的 ADC 使用!”这种笼统标题。作为标题,必须说明清楚:
 ①你是在请教问题,还是在介绍有关的知识?
 ②ADC的问题有许多,你是想说那方面的内容?
注意以上两点,标题应该改成如:“请教:ADC 可以不使用中断吗?”。
起一个能说明帖子大意的标题,除了减轻我们的帖子分类整理工作,还方便其它人阅读,节省大家的时间。
注:使用合格的标题,对你来说只是举手之劳,但却会为我们的管理工作提供很大的便利。谢谢你的支持。
./bbs_upload/files_6/armok01122228.gif

format 发表于 2010-6-16 23:47:28

我也有过

估计和工作的传输模式有关系~~~

myqiang1990 发表于 2010-6-16 23:50:33

回复【1楼】format
-----------------------------------------------------------------------
传输模式?能具体说说么。。。我现在用的是P0通道接收的,自动应答,自动重发。有判断中断的。。这样的模式。。

usingavr 发表于 2010-6-17 07:57:57

你在程序里面把所有能写的寄存器初始化一次试试

myqiang1990 发表于 2010-6-17 09:43:56

回复【3楼】usingavr
-----------------------------------------------------------------------
发现很多人碰到到了和我一模一样的问题、、、、

battery 发表于 2010-6-17 10:33:30

回复【楼主位】myqiang1990 悲剧了我
我用at89s52控制两个nrf24l01模块,现在可以发送和接收了,但是要单片机重新上电后才能接收,单片机复位后马上就接收不到!!只有单片机重新上电才可以接收!这是为何??代码就不传了。。大家就经验说说就行。。。
-----------------------------------------------------------------------

你遥控的距离有多远?
每次发送前都要重新初始化,并且清STATUS状态器,FLUSH_TX.

NJ8888 发表于 2010-6-17 12:35:54

回复【4楼】myqiang1990 悲剧了我
回复【3楼】usingavr   
-----------------------------------------------------------------------
发现很多人碰到到了和我一模一样的问题、、、、

-----------------------------------------------------------------------

确实如此,开始我也是第一次成功,然后非要断电才行。复位,重初始化不行。我认为原因是FIFO没空。进行发送接收操作前先清空再操作

myqiang1990 发表于 2010-6-17 12:39:54

回复【5楼】battery
-----------------------------------------------------------------------

很近的。。只有10多CM这样..我现在还在试验阶段。。。

myqiang1990 发表于 2010-6-17 12:41:18

回复【6楼】888888888888
-----------------------------------------------------------------------
哦。。好的。。不过现在复位也可以接收了,但是有时要过很久才能接收到!!说明不稳定、、、、

myqiang1990 发表于 2010-6-17 12:54:19

呵呵。。真的。。真的是没有清空FIFO寄存器啊!现在很稳定了!!哎呀。。真是感谢大家了。。希望用NRF24L01的朋友,如果还遇到我这样的问题后能看到我这个帖子!!!!呵呵。。。。

NJ8888 发表于 2010-6-17 12:58:06

回复【9楼】myqiang1990 悲剧了我
呵呵。。真的。。真的是没有清空fifo寄存器啊!现在很稳定了!!哎呀。。真是感谢大家了。。希望用nrf24l01的朋友,如果还遇到我这样的问题后能看到我这个帖子!!!!呵呵。。。。
-----------------------------------------------------------------------

那就好,我以前为这头疼一周才搞定,当时好像没人说这样做,我自己分析的

myqiang1990 发表于 2010-6-17 13:10:40

回复【10楼】888888888888
-----------------------------------------------------------------------

有你这样的前辈啊。。那是我们这种后来人的福额。。。很感谢啊。。搞这个搞了4天了。。

battery 发表于 2010-6-17 14:19:11

回复【7楼】myqiang1990 悲剧了我
回复【5楼】battery   
-----------------------------------------------------------------------
很近的。。只有10多cm这样..我现在还在试验阶段。。。
-----------------------------------------------------------------------

10多cm./emotion/em040.gif
我的只有10米

24L01+ 是否远点?

myqiang1990 发表于 2010-6-17 17:35:59

回复【12楼】battery
-----------------------------------------------------------------------
嘿嘿。。今天试验了一下。。我的应该不止10米哦、、、

format 发表于 2010-6-17 19:07:20

汇编的,楼主笑纳~~~

点击此处下载 ourdev_562257.rar(文件大小:168K) (原文件名:24L01my51.rar)

myqiang1990 发表于 2010-6-17 19:39:43

回复【14楼】format
-----------------------------------------------------------------------

呵呵呵、、、感谢啊。。可是我一点汇编都不懂啊。。我现在可以用了,而且我还用它来传了温度呢。。不错不错。。呵呵。。等我把它搞完了,一起上传让大家分享啊。。

zheshiwo 发表于 2010-6-20 15:05:27

记号下,AT89S52控制两个NRF24L01可以发送和接收

推荐个购买地址?
另外,分别接在单片机和PC的串口,是不是就可以遥控了?

myqiang1990 发表于 2010-6-20 18:25:31

回复【16楼】zheshiwo
-----------------------------------------------------------------------

是的。。我现在就是用上位机控制的。。。购买地址啊??就不推荐了吧。。淘宝有很多的。。。
http://cache.amobbs.com/bbs_upload782111/files_29/ourdev_562844OP8FC6.jpg
(原文件名:截图00.jpg)

zheshiwo 发表于 2010-6-20 22:41:37

就是太多,花了眼,短信我你哪买的就OK。

zheshiwo 发表于 2010-6-20 22:42:17

另外,你的节点温度怎么差这么多?

myqiang1990 发表于 2010-6-20 23:17:35

回复【19楼】zheshiwo
-----------------------------------------------------------------------
现在还没搞好。。我随便从下位机发的数。。只有节点A是正确的。。。我现在没有AMS1117了。。所以搞不了。。上次有个1117差点把我的模块搞烧掉...请看我发的帖子。。我现在也只有3个而已、、我还想弄几块回来。。。现在没空了。。我要考试。。等暑假在弄完其他节点。。。

myqiang1990 发表于 2010-6-20 23:22:48

回复【18楼】zheshiwo
-----------------------------------------------------------------------

淘宝好多的。。是NRF24L01的芯片就是一模一样的。。。只不过能管脚顺序不一样。。你随便搜一下啊就有。。只要是NRF24L01的都一样的。。。http://51rf.taobao.com/?asker=wangwang。。就这个啦。。

battery 发表于 2010-6-21 09:31:11

淘宝是好多的,但遥控距离可能差别很大.

普遍的都是十几块,可能10米以内

有些地方宣称自己PCB板天线,可以做到30米,但要60块.

myqiang1990 发表于 2010-6-21 12:39:42

回复【22楼】battery
-----------------------------------------------------------------------

我这块,他吹能到80米。。还没试验过呢。。。没有天线的。。就是PCB天线而已。。。

battery 发表于 2010-6-21 15:13:15

你的也是十来块钱?在哪里买?等待你的实验结果
个人感觉十来块,就十米左右,想远一点,就贵一点.一分钱一分货.

-------------------------------------------------------------------------------------------------------------------
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4062233&bbs_page_no=1&search_mode=4&search_text=battery&bbs_id=9999
【14楼】 xuntong
NRF24L01P=NRF24L01+

NRF24L01P有三种传输速率,比NRF24L01多一种250K的传输速率,250K速率比1M速率远约一倍距离(相同硬件相同环境).
------------------------------------------------------------------------------------------------------------------


现在打算买NRF24L01P,换到我的NRF24L01模块上,看是否远一倍.
NRF24L01P会比NRF24L01贵一点.

网上那些"NRF24L01模块"的"增强版","加强版",价格大概20块左右,不知道用的芯片是否NRF24L01P,我不敢买.

myqiang1990 发表于 2010-6-21 21:55:06

回复【24楼】battery
-----------------------------------------------------------------------

看了一些网上说,说加个什么功率放大的可以加大距离啊。。。你试试。。。下面是人家的话:
近做了一个MSP430F2232+nRF24L01做无线通信的系统,为了扩展无线通信距离在nRF24L01的输出端又添加了功率放大器PA2423L,使得输出通信距离可以扩展到数百米。

hua521521 发表于 2010-7-3 17:02:38

我用的nRF24L01为什么 发送端 重新上电后就不发数据了呢?必须复位一下接收端才可以正常接收,不知道为什么?

tianzhiying 发表于 2010-8-25 21:35:30

回复【6楼】888888888888
-----------------------------------------------------------------------

请问怎样清空FIFO?

myqiang1990 发表于 2010-8-26 16:04:43

回复【27楼】tianzhiying
-----------------------------------------------------------------------

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4224575&bbs_page_no=1&search_mode=3&search_text=myqiang1990&bbs_id=9999

myqiang1990 发表于 2010-8-26 16:05:12

回复【26楼】hua521521
-----------------------------------------------------------------------

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4224575&bbs_page_no=1&search_mode=3&search_text=myqiang1990&bbs_id=9999

hiqrf3 发表于 2010-9-1 14:47:05

请教一下各位,我也遇到这个问题,用的nRF24L01+芯片,就是芯片有时候会死掉,热复位不起作用,要掉电再上电才行。 看你们所说是清楚FIFO就可以解决了,但是我的程序本来就有清FIFO啊,在初始化和发送接收数据的时候都有清除发送和接收FIFO,但是还是老出现这种情况,请问各位是怎么回事呢?

seezache 发表于 2010-11-9 02:10:15

mark useful

af00 发表于 2010-11-9 11:48:46

yyssyy11 发表于 2011-3-23 22:04:28

LZ 小生现有一块AT89S52开发板 两块NRF24L01 就是想先做成一个单片机控制的发送和接受 无线实现 现在看了一天 觉得硬件连接都是问题啊 24l01要求3V供电 你是自己外接电源么 还是自己做了个电路 求解 3Q~~~

365026266 发表于 2011-6-3 20:21:47

请问怎么清空FIFO啊

guywei 发表于 2011-6-4 01:07:24

mark!

myem007 发表于 2012-5-25 22:44:58

现在手上也有两个模块,都调不通。

巴图2012 发表于 2013-4-14 13:15:05

你好,我最近用AT89S52调24L01,载波能、收到,就是没有数据时怎么回事呢,硬件是我自己焊的。

wenxin0000 发表于 2013-7-3 22:45:09

我的清空了还是不行还是老接收一次

qq511153186 发表于 2013-7-4 08:24:42

想问下,nrf905接收几次了也是不接收了,要重新上电后才可以,是什么问题呢

jiang887786 发表于 2014-3-21 22:12:47

买了3个无线模块打算学学。

dongjiren2012 发表于 2014-4-22 13:18:40

呵呵,收获很大,谢谢楼主的帖子

jiang887786 发表于 2014-4-29 20:35:18

确实如此,开始我也是第一次成功,然后非要断电才行。复位,重初始化不行。我认为原因是FIFO没空。进行发送接收操作前先清空再操作、、、
我回去也要清空一下试试,我的不稳定!工作一段时间就断线了!哈哈

青梅li 发表于 2014-7-9 17:16:29

jiang887786 发表于 2014-4-29 20:35
确实如此,开始我也是第一次成功,然后非要断电才行。复位,重初始化不行。我认为原因是FIFO没空。进行发送 ...

楼主的意思是
对这两个寄存器在发送前,和接收前先清空吗?代码如下。我也试了下,是这样清空的,但是还是不是很稳定,是不是我调试的方法不对呢?还是本来24l01就很不稳定。
SPI_RW_Reg(WRITE_REG+FLUSH_TX,0);   
SPI_RW_Reg(WRITE_REG+FLUSH_RX,0);

jiang887786 发表于 2014-7-9 22:52:41

青梅li 发表于 2014-7-9 17:16
楼主的意思是
对这两个寄存器在发送前,和接收前先清空吗?代码如下。我也试了下,是这样清空的,但是还 ...

我上传一个代码,你看看我的帖子,我做到一发一收稳定了。

青梅li 发表于 2014-7-10 09:20:05

jiang887786 发表于 2014-7-9 22:52
我上传一个代码,你看看我的帖子,我做到一发一收稳定了。

我写的查询代码也比较稳定,发送与接受前也会清空fifo。不知道你说的稳定是什么情况。
我的代码调试成功后,比较稳定。但是当我继续调试接收的时候比如修改下接受的代码。又开始不稳定了,这时候必须要重新上电才行。

jiang887786 发表于 2014-7-10 09:53:56

青梅li 发表于 2014-7-10 09:20
我写的查询代码也比较稳定,发送与接受前也会清空fifo。不知道你说的稳定是什么情况。
我的代码调试成功 ...

接受完成后,读取完数据同样还是要清空接受缓冲区的,不然也不行。你打算做什么项目使用呢?

青梅li 发表于 2014-7-10 10:04:19

jiang887786 发表于 2014-7-10 09:53
接受完成后,读取完数据同样还是要清空接受缓冲区的,不然也不行。你打算做什么项目使用呢? ...

      SetRX_Mode();
                                if(NRF24L01_RxPacket(RxBuf))
                                {
                                                for(i =0;i<31;i++)
                                                {
                                                       P1 = RxBuf;
                                                       SendData(RxBuf);
                                                       Delay(1000); //ÑÓʱ
                                                }
                                                SPI_RW_Reg(WRITE_REG+FLUSH_TX,0);   
                                                SPI_RW_Reg(WRITE_REG+FLUSH_RX,0);
                                }


只能是读取后清空吧。读取前清空,清空了再读取还能读上来吗?

Hearthbeats 发表于 2014-10-7 22:14:25

有前辈们的经验做指导就是好啊,今晚上再弄这个,也出现类似的问题,必须重新上电才能再次发送,完了之后,我在每次发送前,加了一个清除所有状态标志位的函数,现在按复位也可以发送了,呵呵
页: [1]
查看完整版本: AT89S52控制两个NRF24L01可以发送和接收,但要单片机重新上电后才能接收,单片机复位就