极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20096|回复: 8

Nrf24L01模块如何设置传输速率?

[复制链接]
发表于 2013-7-12 17:00:33 | 显示全部楼层 |阅读模式
使用的是Mirf.h的库文件,想要将速率由2M改为512K,仔细看过他的CPP文件 似乎没有找到多少线索 似乎需要直接修改某些地址的某些参数 请问有人做过吗?
回复

使用道具 举报

发表于 2013-7-12 17:53:00 | 显示全部楼层
只能设置成1M或2m;在config里加语句:RF_SETUP^=1<<RF_DR; 这样速率就成了1M。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-12 18:07:49 | 显示全部楼层
你确定只能够设置成1M?理论上来说应该可以设置成512K的吧、、、
回复 支持 反对

使用道具 举报

发表于 2013-7-12 23:16:39 | 显示全部楼层
呵呵,datasheet这么写的啊,而且发送速率由nrf24l01自身时钟决定的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-13 10:10:29 | 显示全部楼层
我是在使用的时候希望传送距离能够远一点 所以才要降低速率的  那么就先改成1M吧。。。你有没有用Nrf通过最小系统来驱动?我怀疑使用最小系统(一个芯片加上一点点外部电路)可能导致无法通信?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-16 10:18:59 | 显示全部楼层
willcome 发表于 2013-7-12 17:53
只能设置成1M或2m;在config里加语句:RF_SETUP^=1

按照你的这个语句修改之后无法编译
回复 支持 反对

使用道具 举报

发表于 2018-5-12 22:11:27 | 显示全部楼层

下面的程序上传通过了可是测试时发射端的灯能亮,接收端的灯不亮,哪位大师知道是什么原因吗?


arduino nano与无线模块的连接是8-CSN,7-CE,13-SCK,11-MOSI,12-MISO
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7, 8); // CNS, CE
const byte addresses[][6] = {"00001", "00002"};
String indate="";
String val="";
int led=3;

void setup() {
   
  Serial.begin(9600);
  pinMode(led,OUTPUT);
  radio.begin();
  radio.openWritingPipe(addresses[0]); // 00002
  radio.openReadingPipe(1, addresses[1]); // 00001
  radio.setPALevel(RF24_PA_MIN);
   
}

void loop() {
  delay(5);
    radio.stopListening();
    while(Serial.available()>0)
  {
    indate+=char(Serial.read());
    delay(2);
    if(Serial.available()<=0)
     {
        Serial.println(indate);
     }
  }
  if(indate.length()>0)
  {
     val=indate;  
     if(val=="b")  
       {
         digitalWrite(led,HIGH);
         const char text1[] = "b";
         radio.write(&text1, sizeof(text1));           
       }
     else if(val=="a")
      {
         digitalWrite(led,LOW);
         const char text2[] = "a";
         radio.write(&text2, sizeof(text2));
      }
   
  }  
    indate="";   //清空indate为下一次输入做准备
}


这边是接收端的代码,读取收到的文本,是b就打开led,是a则关闭led,之前有写了个把读取的文字发送到串口的然后发现串口里
arduino uno的连接是CE <–> Arduino pin 9
CSN <–> Arduino pin 10
SCK <–> Arduino pin 13
MOSI <–> Arduino pin 11
MISO <–> Arduino pin 12
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define led 5

RF24 radio(7, 8); // CNS, CE
const byte addresses[][6] = {"00001", "00002"};
void setup()
  pinMode(5, OUTPUT);
  radio.begin();
  radio.openWritingPipe(addresses[1]); // 00001
  radio.openReadingPipe(1, addresses[0]); // 00002
  radio.setPALevel(RF24_PA_MIN);
}
void loop() {
  radio.startListening();
  if (radio.available()) {
    char text[32] = "";
    radio.read(&text, sizeof(text));
     
  if (text == "a") {
    digitalWrite(led, HIGH);

  }
  if (text == "b") {
    digitalWrite(led, LOW);

  }
}}
回复 支持 反对

使用道具 举报

发表于 2018-5-12 22:13:14 | 显示全部楼层
大师 能不能帮我看看是什么问题,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-27 09:52 , Processed in 0.049995 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表