arduinomirf库_Arduino NRF24L01 应用实例(32Bytes)

本文介绍了如何使用Arduino Nano和NRF24L01模块进行32Bytes的数据通信。通过引入microBox和Mirf库,实现了一个简单的命令行系统,演示了发送和接收32Byte数据的流程。硬件连接和代码配置细节也在文中给出,包括错误处理和性能测试。
摘要由CSDN通过智能技术生成

Arduino NRF24L01 应用实例(32Bytes)

发布时间:2020-06-15 17:49:00

来源:51CTO

阅读:195

作者:firswof

Arduino(NANO) NRF24L01 应用实例

软件准备:

microBox 库(https://github.com/wastel7/microBox):构建一个微型的命令行系统

Mirf 库(https://github.com/E-elektronic/Mirf):提供RF相关的核心功能

以上库请自行下载

硬件准备:

Arduino NANO板 x 2; NRF24L01 x 2; Other;

开发环境:

VS2017 + Arduino IDE(1.8.4)

硬件连接:

f1edbfc60c4c51dc418923700be9adb1.png

Server、Client 与 NRF24L01模块的连接方式完全相同。接线次序:VCC:3.3V; GND:GND; CSN: 7; CE:8; MOSI:11; SCK:13; IRQ:不接; MISO:12;

注意:

1.microBox库需要做修改方能试验本实例,修改如下:

microBox.h:

#define MAX_CMD_NUM 128 //设置合适值以正确接受输入内容

#define MAX_CMD_BUF_SIZE 128 //根据需要设置

2.经过简单性能测试,该例程可最快 50ms发收一次(发送32Byte并且接收32Byte)

3.某些情况下可能会发送失败,经测试发现是 Client端的问题,解决方法:对Client端进行复位,现以提供 “reset”指令以支持软复位

Client 代码(client.ino):

#include "microBox.h"

#pragma region UserDefined

//#define DEBUG

#undef DEBUG

#ifndef ADD_RF

#define ADD_RF

#endif // !ADD_RF

#ifdef ADD_RF

/*

* Hardware SPI:

* MISO -> 12

* MOSI -> 11

* SCK -> 13

*

* Configurable:

* CE -> 8

* CSN -> 7

*/

#include

#include "Mirf.h"

#include "nRF24L01.h"

#include "MirfHardwareSpiDriver.h"

#define ulong unsigned long

#define dword ulong

uint8_t code[32] = { 0 };

void(*ResetInternal) (void) = 0;

//CRC-8, Widh:8, Poly:0x07, Init: 0x00

//RefIn:False, RefOut:False, XorOut:0x00

byte CalcCRC8(byte * pdata, unsigned int len)

{

byte crc = 0x00;

for (int i = 0; i < len; i++)

{

crc ^= ((*pdata++) & 0xFF);

for (byte j = 0; j < 8; j++)

{

if (crc & 0x80)

{

crc <<= 1;

crc ^= 0x07;

}

else

{

crc <<= 1;

}

}

}

return crc;

}

bool RfSend_Internal(uint8_t * data)

{

int i = 0;

unsigned long time = m

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值