OpenEdv-开源电子网

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

今天在两块板子上实现 NRF24L01 半双工通信

[复制链接]

8

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2015-8-1
在线时间
7 小时
发表于 2015-8-23 20:29:47 | 显示全部楼层 |阅读模式
<p>
        两个板子,一个做客户机,一个做服务器。
</p>
<p>
        客户机的运行原则是,先发送,再等响应,一般等响应会有超时设置。
</p>
<p>
        <div   style="background-color:#E8E8E8;">
[mw_shl_code=c,true]int main(void)
{
  _Init();
  
  // 客户端程序,先发送,然后等待接收响应(一般规定超时)。如此循环。
  {
    u8 lBuffer[33];
    u8 i = 0;
   
    while(i &lt; 100)
    {
      oWireless(WIRELESS1, gEnvironment.Channel, "%032d", i);
      if(iWireless(WIRELESS1, gEnvironment.Channel, lBuffer) == TRUE) // iWireless 内部差不多 700ms 会超时
        i = fun_StringToNumber(lBuffer, 0, 32) + 1;
    }
  }  
  
  while(TRUE)
  {
    LED1 = !LED1;
    Wait_s(2);
  }      
}[/mw_shl_code]
        </div>
</p>
<p>
        服务器的运行原则是,先无限等, 收到后,再发送响应,一般发送后可不理会。
</p>
<p>
        <div   style="background-color:#E8E8E8;">
[mw_shl_code=c,true]int main(void)
{
  _Init();
  
  oVoice("sound218[p1000]欢迎使用欧文特斯体质测试系统");
  l5_SetTestRunningState(FALSE);


  // 服务器程序,无限收,收到后发送。如此循环
  {
    u8 lBuffer[33];
    u8 i;
   
    while(i &lt; 100)
    {
      while(iWireless(WIRELESS1, gEnvironment.Channel, lBuffer) == FALSE) { ;}
      
      i = fun_StringToNumber(lBuffer, 0, 32) + 1;
      oWireless(WIRELESS1, gEnvironment.Channel, "%032d", i);
    }
  }
  
  while(TRUE)
  {
    LED1 = !LED1;
    Wait_s(2);
  }      
}[/mw_shl_code]
        </div>
<br />
双方通信的过程是在互相发送一个数,收到后递增返回,对方收到后再递增返回。最终双方将这个数增加到100,退出。
</p>
有软件开发经验,从0硬件基础学习STM32开发。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2015-8-1
在线时间
7 小时
 楼主| 发表于 2015-8-23 20:32:27 | 显示全部楼层
<p>
        信息显示的是客户机程序的调试输出
</p>
<p>
        <br />
</p>
<p>
       


</p>
<p>
        可以看出,信号接收到不是很顺畅,有丢包现象。当我身体处在某个位置时,信号特别好。看来受干扰还还挺严重的。不知道怎么解决?难道要加天线么?
</p>
有软件开发经验,从0硬件基础学习STM32开发。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2015-8-23 22:11:32 | 显示全部楼层
谢谢分享....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

65

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-8-16
在线时间
34 小时
发表于 2015-8-29 10:25:04 | 显示全部楼层
楼主,客户端和服务器&nbsp;是用NRF24L01通道几&nbsp;&nbsp;进行通信,若不是采用通道0&nbsp;请教下如何配置其他通道通信,比如通道1
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-9-29 23:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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