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



1. 核心定义:
2. 关键特性:
3. 工作原理:
1. 核心定义:
2. 关键特性:
3. 工作原理:
本教程中使用的主控设备为 AtomS3R ,搭配 Atomic RS485/232 Base。本模块采用串口方式通讯,根据实际的电路连接修改程序中的引脚定义,设备连接后对应的串口引脚为G5 (RX)、G6 (TX)。
Atomic RS485 Base 内部没有集成 120Ω 终端电阻,可参考下图位置在 A/B 线间增加 120Ω 电阻。
#include <M5Unified.h>
#include <M5GFX.h>
static int cnt = 0; // Counter for RS485 sent messages (increments per transmission)
String recvBuffer; // Buffer to store received RS485 data
void setup() {
M5.begin();
M5.Display.clear();
M5.Display.setFont(&fonts::FreeMonoBold9pt7b);
M5.Display.drawString("Send :", 0, 5);
M5.Display.drawString("Receive :", 0, 50);
Serial.begin(115200);
// Parameters: baud rate=115200, config=8N1 (8 data bits, 1 stop bit, no parity), RX pin=27, TX pin=19
Serial2.begin(115200, SERIAL_8N1, 5, 6);
}
void loop() {
M5.update();
// --- Send Data ---
String msg = "RS485 #" + String(++cnt);
Serial2.println(msg);
Serial.printf("Send: %s\n", msg.c_str());
// Display sent message on screen
M5.Display.fillRect(0, 25, 128, 20, TFT_BLACK);
M5.Display.setTextColor(GREEN);
M5.Display.setCursor(0, 25);
M5.Display.printf("%s\n", msg.c_str());
// --- Receive Data ---
recvBuffer = "";
while (Serial2.available()) {
char ch = Serial2.read();
recvBuffer += ch;
}
// If valid data is received
if (recvBuffer.length() > 0) {
Serial.print("Recv: ");
Serial.print(recvBuffer);
Serial2.flush();
// Display received message on screen
M5.Display.setTextColor(YELLOW);
M5.Display.fillRect(0, 70, 128, 20, TFT_BLACK);
M5.Display.setCursor(0, 70);
M5.Display.printf("%s", recvBuffer.c_str());
}
delay(2000);
}1. 下载模式:不同设备进行程序烧录前需要下载模式,不同的主控设备该步骤可能有所不同。详情可参考Arduino IDE上手教程页面底部的设备程序下载教程列表,查看具体的操作方式。
AtomS3R 长按复位按键 (大约 2 秒) 直到内部绿色 LED 灯亮起,便可松开,此时设备已进入下载模式,等待烧录。
