//Receiver
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
unsigned int adata = 0, oldadata = 0;
#include "U8glib.h"
/*SPI协议*/
U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9
int n = 0;
int value;
int data;
const int CSPin=10;
void setup() {
if (u8g.getMode() == U8G_MODE_R3G3B2) u8g.setColorIndex(255); // white
else if (u8g.getMode() == U8G_MODE_GRAY2BIT) u8g.setColorIndex(3); // max intensity
else if (u8g.getMode() == U8G_MODE_BW) u8g.setColorIndex(1); // pixel on
// u8g.setFont(u8g_font_unifont);
Serial.begin(9600);
u8g.setFont(u8g_font_6x10);
u8g.setFontRefHeightExtendedText();
u8g.setDefaultForegroundColor();
u8g.setFontPosTop();
pinMode(Mirf.csnPin,OUTPUT);
digitalWrite(Mirf.csnPin,HIGH);
pinMode(CSPin,OUTPUT);
Mirf.cePin = 4;
Mirf.csnPin = 5; //设置CS引脚为D10
Mirf.spi = &MirfHardwareSpi;
Mirf.init();
Mirf.setRADDR((byte *)"Rec01");
Mirf.payload = sizeof(unsigned int);
Mirf.channel = 3;
Mirf.config();
delay(10);
}
void draw(void) {
u8g.setFont(u8g_font_8x13); //使用8x13大小的字符
u8g.setPrintPos(0, 20); // 对应 x,y 轴值
u8g.print("HUMI(%) :");
u8g.setPrintPos(73, 20);
u8g.print("50");
u8g.setPrintPos(0, 40);
u8g.print("TEMP(oC):");
u8g.setPrintPos(73, 40);
u8g.print("34");
//u8g.print(adata);
}
void loop()
{
digitalWrite(CSPin,HIGH);
digitalWrite(Mirf.csnPin,LOW);
//定义一个暂存数组,大小为Mirf.payload。
byte data[Mirf.payload];
if(Mirf.dataReady())
{
Mirf.getData(data);
adata = (unsigned int)((data[1] << 8) | data[0]);
if(adata != oldadata)
{
oldadata = adata;
Serial.print("A0=");
Serial.println(adata);
}
}
digitalWrite(Mirf.csnPin,HIGH);
digitalWrite(CSPin,LOW);
u8g.firstPage();
do {
draw();
} while ( u8g.nextPage ());
delay(1000);
n = n + 1;
}
arduino初学者,请教各位大佬
代码如上,OLED测试时注释掉NRF24L01后会显示上传的当次数据,但取消注释后,串口显示可以收到无线传输的数据,但是此时无论在draw函数内如何修改输出后重新上传,OLED的显示都不变
Mirf.h>如何下载呢??