kbcw 发表于 2021-9-1 15:04:17

使用Mrif库时遇见问题



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 = {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;

void loop() {
//读取传感器
data_buff = 10;
data_buff = '{';
data_buff = digitalRead(2)+'0';
data_buff = '}';
data_buff = '\r';
data_buff = '\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);
}

kpj001 发表于 2021-10-2 18:36:17

库是有版本的,根据程序年代大概选合适的版本,不然就需要看看错误修改函数使用方法。这个搞不定就不要用nRF24L01了,相当折腾。有无线串口模块直接可用。
页: [1]
查看完整版本: 使用Mrif库时遇见问题