NRF24L01实现简单的双工功能(最简单的方式)

NRF24L01只能设置为发射模式,或者接收模式,可以设置手动应答,笔者这里只从逻辑上写一种最简单的通信方式,对数据的时效性要求不是很高,所以采用这种方式,为各位提供一种思路
思想如下:
核心思想就是发送一次,然后等待接收,如长时间没有接收到数据就再发送一次,会存在主从两机同时处于发送接收状态,不过这种概率较低,当有一次数据传输成功后,就进入“默契配合”状态了,即:
主:发送->接收->发送->接收->发送
从:接收->发送->接收->发送->接收
伪代码:

int count=0;
  for(;;)
  {
		TX_Mode();//设置为发送模式
		osDelay(1);	
		NRF_SEND();//发送数据
		osDelay(1);	
		RX_Mode();//设置为接收模式
		while(1)
		{
			if(RC_Analy()==1) count++;//进行数据接收,若接收失败则计数一次
			else {count=0;break;}//接收到数据提前接收接收,跳出进入发射模式
			if(count>=10) {count=0;break;}//计数超过十次认为对方也处于接收模式,直接跳出重新发荣数据让对方接收数据
			osDelay(1);	
			
		}
		
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值