极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17609|回复: 1

使用Mrif库时遇见问题

[复制链接]
发表于 2021-9-1 15:04:17 | 显示全部楼层 |阅读模式


D:\Program Files (x86)\Arduino\libraries\Mirf\MirfHardwareSpiDriver.cpp: In member function 'virtual void MirfHardwareSpiDriver::begin()':
D:\Program Files (x86)\Arduino\libraries\Mirf\MirfHardwareSpiDriver.cpp:9:22: error: 'SPI_2XCLOCK_MASK' was not declared in this scope
  SPI.setClockDivider(SPI_2XCLOCK_MASK);


如上所示,下面是代码,希望好心大佬帮忙看一下。感激不尽。

#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>



byte TXADDR[5] = {0xff, 0xff, 0xff, 0xff, 0xff};

void setup() {
  Serial.begin(115200);
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(2, INPUT);

  //根据硬件电路使用的引脚
  Mirf.cePin = 10;    //CE
  Mirf.csnPin = 9;    //CSN
  Mirf.spi = &MirfHardwareSpi;
  Mirf.init();

  //设置发送目标  目标地址即接收端的自身地址
  Mirf.setTADDR((byte *)TXADDR);

  Mirf.payload = 32; //32字节payload
  Mirf.channel = 0;   //2.4GHz
  Mirf.config();

  Serial.println("Beginning ... ");
}

uint8_t data_buff[32];

void loop() {
  //读取传感器
  data_buff[0] = 10;
  data_buff[1] = '{';
  data_buff[2] = digitalRead(2)+'0';
  data_buff[3] = '}';
  data_buff[4] = '\r';
  data_buff[5] = '\n';

  //设置发送目标
  Mirf.setTADDR((byte*)TXADDR);
  //无线传输发送
  Mirf.send((byte*)data_buff);
  //等待发送完成
  while (Mirf.isSending()) {
  }

  for (int i = 1; i < 5; i++)
  {
    Serial.print(data_buff);
  }
  Serial.println();
  //延时一会儿
  delay(100);
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2021-10-2 18:36:17 | 显示全部楼层
库是有版本的,根据程序年代大概选合适的版本,不然就需要看看错误修改函数使用方法。这个搞不定就不要用nRF24L01了,相当折腾。有无线串口模块直接可用。
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-4-26 18:20 , Processed in 0.042097 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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