OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 24656|回复: 21

在2个51单片机之间实现24L01无线通信

[复制链接]

10

主题

19

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2010-12-14
在线时间
0 小时
发表于 2011-1-7 09:46:27 | 显示全部楼层 |阅读模式
想用STM32开发板和51单片机之间无线通信。于是试了一下,不行!<br />
为了找出问题!我想先应该在两个51之间实现通信!51的模拟SPI读写函数如下:12M晶振下<br />
uchar SPIx_ReadWriteByte(uchar reg)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uchar bit_ctr;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(bit_ctr=0;bit_ctr&lt;8;bit_ctr++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // output 8-bit<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NRF24L01_MOSI = (reg &amp; 0x80);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // output 'uchar', MSB to MOSI<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reg = (reg &lt;&lt; 1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // shift next bit into MSB..<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NRF24L01_SCK = 1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;// Set SCK high..<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reg |= NRF24L01_MISO;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // capture current MISO bit<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NRF24L01_SCK = 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ..then set SCK low again<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return reg;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // return read uchar<br />
}<br />
其它的函数都是照搬正点原子的,如下:<br />
u8 NRF24L01_Write_Reg(u8 reg,u8 value);<br />
u8 NRF24L01_Read_Reg(u8 reg);<br />
u8 NRF24L01_Read_Buf(u8 reg,u8 *pBuf,u8 len);<br />
u8 NRF24L01_Write_Buf(u8 reg, u8 *pBuf, u8 len);<br />
u8 NRF24L01_TxPacket(u8 *txbuf);<br />
u8 NRF24L01_RxPacket(u8 *rxbuf);<br />
void RX_Mode(void);<br />
void TX_Mode(void);<br />
u8 NRF24L01_Check(void);<br />
<br />
只是去掉了上面某些函数当中的SPIx_SetSpeed(SPI_SPEED_8)函数,其它的一点也没动!<br />
利用上面的NRF24L01_Check()函数,可以检测到24L01,但就是通信不了!<br />
<br />
大家认为问题出在哪里了?请赐教!谢谢!<br />
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2011-1-7 14:36:14 | 显示全部楼层
先搞清问题出在哪里?
<br>你两个51,一个刷接收代码,让他先工作.另外一个刷发送代码,后工作.试试可以不.
<br>
<br>如果再不行,你看看你的是不是开启了自动ack,如果开启了,把它关掉,然后再试验,等到能通信了,再开启自动ack.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

42

主题

568

帖子

0

精华

高级会员

Rank: 4

积分
783
金钱
783
注册时间
2010-12-19
在线时间
5 小时
发表于 2011-1-7 19:56:13 | 显示全部楼层
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4317174&bbs_page_no=1&search_mode=3&search_text=wolfdong7&bbs_id=9999
<br>
<br>
<br>这里有我两个51单片机NRF24L01的通信程序。
<br>希望能够对LZ有帮助。
一个上蹿下跳的猴子~~~
回复 支持 反对

使用道具 举报

12

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2011-7-14
在线时间
0 小时
发表于 2011-7-30 15:49:25 | 显示全部楼层
回复【楼主位】richgood518:
<br>---------------------------------
<br>楼主调出来没?我也正在调。。。
回复 支持 反对

使用道具 举报

1

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2011-7-22
在线时间
11 小时
发表于 2011-8-20 13:42:53 | 显示全部楼层
我也在调,用杜邦线引到开发板上总是发现不了无线模块头痛中。
人外人天外天,学习无止境!
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2012-4-6
在线时间
0 小时
发表于 2012-4-6 08:46:40 | 显示全部楼层
可以通信了吗?我现在也遇到这样的问题,想请教下
回复 支持 反对

使用道具 举报

5

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2011-9-28
在线时间
1 小时
发表于 2012-8-13 11:39:32 | 显示全部楼层
楼主弄得怎么样了,我也在调不出51和stm32的通信。。。好纠结啊
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2013-5-7
在线时间
0 小时
发表于 2013-5-7 12:05:42 | 显示全部楼层
楼主,可以给我你的两个51间通信的代码吗&nbsp;&nbsp; 24L01的
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2013-5-7
在线时间
0 小时
发表于 2013-5-7 12:25:56 | 显示全部楼层
回复【3楼】wolfdong7:
<br>---------------------------------
<br>你好,现在在弄两个51间的无线通信,24L01的,遇到问题了,要愁死了。。。非常非常想要你的程序,谢谢啦。。。。。。。
回复 支持 反对

使用道具 举报

42

主题

568

帖子

0

精华

高级会员

Rank: 4

积分
783
金钱
783
注册时间
2010-12-19
在线时间
5 小时
发表于 2013-5-7 17:19:21 | 显示全部楼层
回复【9楼】pPyingying:
<br>---------------------------------
<br>很久很久以前做的东西了。。。。
一个上蹿下跳的猴子~~~
回复 支持 反对

使用道具 举报

7

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2013-5-5
在线时间
0 小时
发表于 2013-5-7 17:32:26 | 显示全部楼层
我现在也纠结这个问题,我用两个STM32进行通讯,按照原来的例程是可以的,我只要稍加修改,程序就没办法通讯,真的很蛋疼。
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2013-5-7
在线时间
0 小时
发表于 2013-5-8 23:34:20 | 显示全部楼层
回复【10楼】wolfdong7:
<br>---------------------------------
<br>那两个24L01通信有什么需要注意的吗?比如地址之类的。。。。。。。
回复 支持 反对

使用道具 举报

0

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2012-9-14
在线时间
2 小时
发表于 2013-5-11 23:01:49 | 显示全部楼层
LZ,现在是什么情况?大家等你出来公布情况哦。我也很想知道。
我只是个过客。
回复 支持 反对

使用道具 举报

25

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2013-4-20
在线时间
0 小时
发表于 2013-7-18 16:25:43 | 显示全部楼层
回复【2楼】正点原子:
<br>---------------------------------
<br>用stm8s来实现的话可以直接接5V吗?看有的文档介绍电流小的话可以直接接?不知道有没有操作寄存器直接接五伏成功的。。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2013-7-18 17:01:10 | 显示全部楼层
串电阻.
回复 支持 反对

使用道具 举报

21

主题

146

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
467
金钱
467
注册时间
2013-7-12
在线时间
86 小时
发表于 2013-7-23 20:58:38 | 显示全部楼层
http://hi.baidu.com/txz01/item/c5b064f3b8877e14ce9f3216
<br>
<br>
<br>到这里面去看&nbsp;&nbsp;&nbsp;&nbsp;我跟这里学的&nbsp;&nbsp;并调成功过&nbsp;&nbsp;&nbsp;讲得很细哦
回复 支持 反对

使用道具 举报

11

主题

125

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2012-6-21
在线时间
8 小时
发表于 2013-7-24 15:14:08 | 显示全部楼层
好想法!
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2013-8-22
在线时间
0 小时
发表于 2013-8-24 00:33:34 | 显示全部楼层
纠结当中,始终调试不出来啊
回复 支持 反对

使用道具 举报

6

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2013-8-23
在线时间
5 小时
发表于 2013-8-26 12:02:16 | 显示全部楼层
我前些天调出来啦
我即狂澜,且无法被力挽
回复 支持 反对

使用道具 举报

6

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2013-8-23
在线时间
5 小时
发表于 2013-8-26 12:02:34 | 显示全部楼层
地址和频道有没有一致?
我即狂澜,且无法被力挽
回复 支持 反对

使用道具 举报

8

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2013-10-8
在线时间
0 小时
发表于 2013-10-8 19:33:42 | 显示全部楼层
回复【19楼】OIKSMT32:
<br>---------------------------------
<br>请问之前的通信不了是出现了什么问题&nbsp;最近我也是在搞这个&nbsp;&nbsp;接收的都跟我发送的&nbsp;不一样&nbsp;求指点
回复 支持 反对

使用道具 举报

32

主题

153

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
453
金钱
453
注册时间
2014-11-5
在线时间
0 小时
发表于 2014-12-29 04:50:08 | 显示全部楼层
回复【20楼】OIKSMT32:
<br>---------------------------------
<br>大神,能把你的24L01发一份出来吗?&nbsp;&nbsp;&nbsp;最近搞51和STM32通讯&nbsp;&nbsp;&nbsp;&nbsp;51初始化都不行。。。检测不到24L01(下载楼主的程序)
酱油团队--
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-10-1 12:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表