博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
raspberrypi 与 arduino 使用 nRF24L01+ 通信 -- arduino为接收端
阅读量:5172 次
发布时间:2019-06-13

本文共 2116 字,大约阅读时间需要 7 分钟。

raspberry pi发送端的代码:http://www.cnblogs.com/hangxin1940/archive/2013/05/01/3053467.html ## 准备RF24库 https://github.com/maniacbug/RF24 首先到这里下载所需的代码 这里需要的是 `RF24.h` `RF24.cpp` `RF24_config.h` `nRF24L01.h` `printf.h` 这五个文件 在arduino的libraries文件夹中新建RF24文件夹,把它们放进去,就可以在arduino IDE中import看到RF24了 不要忘了,把`printf.h`中 #include "WProgram.h" 改成 #include "Arduino.h" ## 连接方式 rf arduino 3.3v 3.3v GND GND CE D9 CSN D10 SCK D13 MOSI D11 MISO D12 ## 示例代码 /* 本示例为接受端,接受无符号长整形数据并将最后一个数据返回给发送段 所有引脚连接方法 rf24 arduino 3.3v 3.3v GND GND CE D9 CSN D10 SCK D13 MOSI D11 MISO D12 */ #include #include "nRF24L01.h" #include "RF24.h" #include "printf.h" /* ping-back 接受端 */ // // 硬件配置 // // 设置 nRF24L01+ CE与CSN引脚 RF24 radio(9,10); // 设置数据通道地址 const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL }; void setup(void) { // 打印信息 // Serial.begin(57600); printf_begin(); printf("\n\rRF24/examples/pingpair/\n\r"); printf("ROLE: Pong back\n\r"); // // 设置rf模块 // radio.begin(); // 开启动态有效信息长度 radio.enableDynamicPayloads(); // 设置重传次数以及每次重传的延迟 //radio.setRetries(15,15); // 设置传输速率 radio.setDataRate(RF24_1MBPS); // 设置功放级别,有四种级别: // RF24_PA_MIN=-18dBm // RF24_PA_LOW=-12dBm // RF24_PA_MED=-6dBM // RF24_PA_HIGH=0dBm radio.setPALevel(RF24_PA_HIGH); // 设置信道(0-127) radio.setChannel(110); // 设置crc校验长度 // 两种 8位RF24_CRC_8 和 16位RF24_CRC_16 radio.setCRCLength(RF24_CRC_16); // 打开两个通道用于两个设备进行来回的通信 // 打开本端的通道用来写消息 radio.openWritingPipe(pipes[1]); // 打开对方的通道用来读消息 radio.openReadingPipe(1,pipes[0]); // // 开始监听 // radio.startListening(); // // 打印配置信息 // radio.printDetails(); } void loop(void) { // 是否有有效数据可以读取 if (radio.available()) { unsigned long got_time; // 有效信息是否接收完 bool done = false; while(!done) { // 获取最后获得的有效信息 done = radio.read( &got_time, sizeof(unsigned long) ); // 打印出来 printf("Got payload %lu...",got_time); // 延迟一小会儿,便于完整接受下一个有效信息 delay(20); } // 首先停止接受,便于发送一个返回信息 radio.stopListening(); // 这里将接受的数值减去100, 那边收到的话好对比发送的信息和对方接受到的结果 got_time -= 100; // 发送 radio.write( &got_time, sizeof(unsigned long) ); printf("Sent response.\n\r"); // 重新回到监听模式 radio.startListening(); } }

转载于:https://www.cnblogs.com/hangxin1940/archive/2013/05/01/3048315.html

你可能感兴趣的文章
第一次作业
查看>>
工作日记
查看>>
weblogic 10.x 上开发restful服务
查看>>
在团队中我的索引卡任务
查看>>
我的一点企业做云经验
查看>>
DataTime
查看>>
130242014057 周陈清 实验一
查看>>
php常用函数集合
查看>>
一段可以使用的 hibernate获得对象->action存入List->jsp页面用<s:iterator>迭代的代码...
查看>>
maven多层项目配置
查看>>
请求ip获取工具类
查看>>
Boost-IO学习 异步数据处理Simple(转)
查看>>
委托和事件
查看>>
我看了全部文件的字符串资源
查看>>
postman
查看>>
centos7安装gitlab
查看>>
hdu-1003 Max Sum
查看>>
BT1120时序,可以用于自测用
查看>>
解决微信小程序要求TLS版本不低于1.2问题
查看>>
20155204《网络对抗》Exp 6 信息搜集与漏洞扫描
查看>>