May I ask whether the platform IDE or avrdude and other tools are faulty? It would be much appreciated if this could solve the problem. My development board model is Arduino UNO R3.
After PlatformIO is burned, it will be stuck at the following code when executing the program:
u8g2.firstPage(); do{ u8g2.setCursor(0, 0); u8g2.setFont(u8g2_font_ncenR12_tf); u8g2.setCursor(10, 35); u8g2.print(“Waiting”); } while (u8g2.nextPage()); delay(200);
The complete code is as follows:
#define BLINKER_BLE
#include <Arduino.h>
#include <SPI.h>
#include <Wire.h>
#include "U8g2lib.h"
#include <Blinker.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <MFRC522.h>
#include <IRremote.h>
#define DHTPIN 7 // 指定 DHT11 数据引脚
#define DHTTYPE DHT11 // 指定传感器类型为 DHT11
float temp, humi;
bool mark = false;
U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);
DHT dht(DHTPIN, DHTTYPE);
IRrecv remote(6);
MFRC522 rfid(10, 9);
String ReadCardUID(MFRC522 *_name){
String _CardUID = "";
for (byte _i = 0; _i < _name->uid.size; _i++)
{
if (_name->uid.uidByte[_i] < 0x10)
_CardUID += "0";
_CardUID += String(_name->uid.uidByte[_i], HEX);
}
return _CardUID;
}
boolean IsNewCard(MFRC522 *_name){
if (!_name->PICC_IsNewCardPresent())
return false;
if (!_name->PICC_ReadCardSerial())
return false;
return true;
}
void setup(){
pinMode(3, OUTPUT); // 继电器 1
pinMode(4, OUTPUT); // 继电器 2
pinMode(5, OUTPUT); // LED
SPI.begin();
rfid.PCD_Init();
remote.enableIRIn();
dht.begin();
u8g2.setI2CAddress(0x3C * 2);
u8g2.begin();
u8g2.enableUTF8Print();
u8g2.firstPage();
do{
u8g2.setCursor(0, 0);
u8g2.setFont(u8g2_font_ncenR12_tf);
u8g2.setCursor(20, 35);
u8g2.print("Gxdung");
} while (u8g2.nextPage());
delay(1000);
}
void loop(){
while (mark == false){
String uid;
if (IsNewCard(&rfid)){
uid = ReadCardUID(&rfid);
rfid.PICC_HaltA();
rfid.PCD_StopCrypto1();
}
if (uid == "b3682896"){
u8g2.firstPage();
do{
u8g2.setCursor(0, 0);
u8g2.setFont(u8g2_font_ncenR12_tf);
u8g2.setCursor(20, 35);
u8g2.print("User 01");
} while (u8g2.nextPage());
delay(1000);
mark = true;
return;
}
else if (uid == "53a7b595"){
u8g2.firstPage();
do{
u8g2.setCursor(0, 0);
u8g2.setFont(u8g2_font_ncenR12_tf);
u8g2.setCursor(20, 35);
u8g2.print("User 02");
} while (u8g2.nextPage());
delay(1000);
mark = true;
return;
}
else if (uid == "43324596"){
u8g2.firstPage();
do{
u8g2.setCursor(0, 0);
u8g2.setFont(u8g2_font_ncenR12_tf);
u8g2.setCursor(20, 35);
u8g2.print("User 03");
} while (u8g2.nextPage());
delay(1000);
mark = true;
return;
}
else{
u8g2.firstPage();
do{
u8g2.setCursor(0, 0);
u8g2.setFont(u8g2_font_ncenR12_tf);
u8g2.setCursor(10, 35);
u8g2.print("Waiting");
} while (u8g2.nextPage());
delay(200);
}
}
while (mark == true){
temp = dht.readTemperature(); // 读取温度值
humi = dht.readHumidity(); // 读取湿度值
u8g2.firstPage();
do{
u8g2.setCursor(0, 0);
u8g2.setCursor(20, 25);
u8g2.print("Temp:");
u8g2.setCursor(70, 25);
u8g2.print(temp);
u8g2.setCursor(20, 45);
u8g2.print("Humi:");
u8g2.setCursor(70, 45);
u8g2.print(humi);
} while (u8g2.nextPage());
if (remote.decode()){
unsigned long value = remote.decodedIRData.decodedRawData;
if (value == 3125149440){
digitalWrite(3, !digitalRead(3));
u8g2.firstPage();
do{
u8g2.setCursor(36, 35);
u8g2.print("Relay 1");
} while (u8g2.nextPage());
delay(500);
}
else if (value == 3108437760){
digitalWrite(4, !digitalRead(4));
u8g2.firstPage();
do{
u8g2.setCursor(36, 35);
u8g2.print("Relay 2");
} while (u8g2.nextPage());
delay(500);
}
else if (value == 3091726080){
digitalWrite(5, !digitalRead(5));
u8g2.firstPage();
do{
u8g2.setCursor(50, 35);
u8g2.print("LED");
} while (u8g2.nextPage());
delay(500);
}
remote.resume();
delay(50);
}
}
}