关于nRF24L01地址问题

这几天在做nRF24L01无线通信,刚开始,地址问题很是让我迷惑,按说依照IP地址的惯性思维,IP数据报有一个目的地址,一个本机地址。但是nRF4L01网上找的历程中,目的地址和本机地址设置的却是一样的。

uchar  TX_ADDRESS[TX_ADR_WIDTH]  = {0x34,0x43,0x10,0x10,0x01}; 
uchar  RX_ADDRESS[RX_ADR_WIDTH]  = {0x34,0x43,0x10,0x10,0x01}; 

这个就很奇怪了,而且接受方设置的地址也是这样,百思不得其解,最后发现原来是自动应答在作怪。

如果设置了自动应答模式,发送方发送完一包数据后,就把自己设置为接受模式(无需手动设置),等待接受方的应带信号,这个和TCP/IP通信是类似的,很好理解。但nRF24L01中,一个数据报中貌似只包含目的地址,却不包含本机地址(源地址)。所以接受方收到数据报以后,理论上是找不到应答方,也就是说不知道给谁应答,但是nRF24L01取出数据报中的目的地址,作为应答地址,发送应答信号。这个目的地址,是发送方的目的地址,同时也是接受方自己的本机地址。这时候就需要发送方在发送数据的时候显式或者说临时的把自己的本机地址设置为和目的地址一样,这样就可以收到接收方发回来的应答信号。所以在发送程序中就有这样的代码

	SPI_Write_Buf(RF_WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);    // 
	SPI_Write_Buf(RF_WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);
发现没有
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值