
Arduino 上手教程
环境配置: 参考 Arduino IDE 上手教程完成 IDE 安装,并根据实际使用的开发板安装对应的板管理,与需要的驱动库。
使用到的驱动库:
使用到的硬件产品:


G5 (TX)、G6 (RX)。仅能通过串口控制,不可使用 M5UnitQRCode 库中的 I2C 接口相关内容。一次;若使用自动扫码模式,可将程序中 #define UART_AUTO_SCAN_MODE 宏定义取消注释。setDecodeTrigger 函数仅在手动扫码模式下有效,自动扫码模式下调用此函数无法控制扫码解码。#include <M5Unified.h>
#include <M5GFX.h>
#include "M5UnitQRCode.h"
M5Canvas canvas(&M5.Display);
M5UnitQRCodeUART qrcode;
// #define UART_AUTO_SCAN_MODE //Enabling this macro definition will automatically scan and decode the code.
#define UART_TX 5
#define UART_RX 6
void setup() {
M5.begin();
Serial.begin(115200);
canvas.setColorDepth(16);
canvas.createSprite(M5.Display.width(), M5.Display.height());
canvas.setFont(&fonts::efontCN_16);
canvas.setTextScroll(true);
while (!qrcode.begin(&Serial1, 115200, UART_TX, UART_RX)) {
canvas.println("Init Fail");
Serial.println("QRCode2 Init Fail");
canvas.pushSprite(0, 0);
delay(1000);
}
canvas.println("Init Success");
Serial.println("QRCode2 Init Success");
#ifdef UART_AUTO_SCAN_MODE
canvas.println("Auto Scan Mode");
qrcode.setTriggerMode(AUTO_SCAN_MODE);
#else
canvas.println("Manual Scan Mode");
qrcode.setTriggerMode(MANUAL_SCAN_MODE);
#endif
canvas.setTextColor(TFT_YELLOW);
canvas.println("Press screen to\nstop/start scan");
canvas.setTextColor(TFT_WHITE);
canvas.pushSprite(0, 0);
}
void loop() {
if (qrcode.available()) {
String data = qrcode.getDecodeData();
uint16_t length = data.length();
Serial.printf("len:%d\n", length);
Serial.printf("decode data:");
Serial.println(data);
canvas.println("Decode data:");
canvas.println(data);
canvas.pushSprite(0, 0);
}
M5.update();
#ifndef UART_AUTO_SCAN_MODE
if (M5.BtnA.wasPressed()) {
qrcode.setDecodeTrigger(true); //Trigger scanning and decoding process once
}
#endif
}1. 下载模式:不同设备进行程序烧录前需要下载模式,不同的主控设备该步骤可能有所不同。详情可参考Arduino IDE上手教程页面底部的设备程序下载教程列表,查看具体的操作方式。
AtomS3R 长按复位按键 (大约 2 秒) 直到内部绿色 LED 灯亮起,便可松开,此时设备已进入下载模式,等待烧录。

