发现网上关于 24L01 带数据包的 ACK 介绍的比较少,自己之前做四轴的时候想说用24L01 做双向通讯,但是对于频繁切换发送、接收模式很是麻烦,时间调的不好很容易造成通讯失败,后来想到 24L01 的带数据包的 ACK 做双向通讯,在网上找了资料,但是就只做了简单介绍,没有介绍用的时候是怎么实现,下面我就对我使用的过程做一个总结,在附上测试程序(C51),本人热衷于使用 STC 单片机做东西,四轴也是用 STC 单片机来做的控制板,飞的也还行。对于初学者来讲,STC 单片机的程序看起来也比较容易看得懂,对于双向传输,我看过 STM32 的程序,想要移植到 51 上,但是对于发送接收部分没有详细的注释,所以刚开始也是一头雾水,找半天都找不到什么时候吧带数据的 ACK 包送入缓存,所以也就放弃了,但是我觉得初始化部分写的比较好,所以也就移植了部分程序,好了不多说,下面开始将原理:带数据包的 ACK 应答传输,有的人说只能用在 24L01+上,没有+的用不了,然而我刚好只有带+的,没带+的用不用的了这个我就不知道了,但是我看过没带+的芯片手册,并没有看到有关带数据包的 ACK 的介绍,然后又看了带+的芯片手册,在带+的手册上发现有相关带数据包的 ACK 的介绍,所以我也认为 ACK 要能带数据包,只能用在有+的芯片上。利用这个 ACK 做数据传输,首先要配置正确,对于配置,你们网上找找,也能找到,我也在这里直接复制粘贴别人的说法:1,需要设置成为可变长度的接收与发送2,需要将接收数据的 ACK 使能3,由于 ACK 带有数据因此自动重发的时间要改成 500μS4,将数据写入等待发送使用的是 W_ACK_PAYLOAD 命令作为接收模式,若要让 ACK 带上数据包,那就得在接收到数据之前,把数据包送到ACK 发送缓存,将数据写入 W_ACK_PAYLOAD 这个地址里面,详细介绍如下从这里可以看出,W_ACK_PAYLOAD 的地址为 0xA8-0xAD,用哪个地址由你喜爱,缓存字节数为 32 字节。所以,初始化为接收模式之后,就先装载 ACK 包,然后在进入接收循环,每当接收到发送端发送过来的数据,读取数据完毕,马上把 ACK 数据包再写进去,不写的话发送端就接收不到带数据包的 ACK。作为发送端,在发送完数据之后立马就读取到 ACK 数据包了,我刚开始用的时候也是犯傻,怎么把 ACK 里面的数据提取出来,想了半天,后来也是灵光一现,想着,手册上说,通道 0 是接收应答信号的,那收到的 ACK 数据包读取方式应该跟一般...