跳到主要内容

R7FA4 PLUS A 使用说明

R7FA4 PLUS A使用说明

硬件连接

准备材料

  • RGB-Matrix-P2-64x64(本产品)
  • 杜邦线 2 × 8PIN(本产品)
  • R7FA4 PLUS A(须另购)

硬件连接示意图

提示
  • 当前这款开发板性能有限,级联效果欠佳,如有相应需求可更换同类型的高性能开发板。

代码说明

R7FA4-PLUS-A.ino

#define Matrix_Width 64
#define Matrix_Height 64

void Demo_0() {
int16_t panel_width = matrix.width();
int16_t panel_height = matrix.height();
int16_t min_size = (panel_width < panel_height) ? panel_width : panel_height;
int16_t circle_radius = min_size / 6;
if (circle_radius < 2) {
circle_radius = 2;
}

// draw a pixel in solid white
screen_clear();
matrix.setFont(NULL);
matrix.drawPixel(0, 0, matrix.Color333(7, 7, 7));
panel_delay(500);

matrix.fillRect(0, 0, matrix.width(), matrix.height(),
matrix.Color333(0, 7, 0));
panel_delay(500);

matrix.drawRect(0, 0, matrix.width(), matrix.height(),
matrix.Color333(7, 7, 0));
panel_delay(500);

// draw an 'X' in red
matrix.drawLine(0, 0, matrix.width() - 1, matrix.height() - 1,
matrix.Color333(7, 0, 0));
matrix.drawLine(matrix.width() - 1, 0, 0, matrix.height() - 1,
matrix.Color333(7, 0, 0));
panel_delay(500);

// draw a blue circle
matrix.drawCircle(circle_radius + 1, circle_radius + 1, circle_radius,
matrix.Color333(0, 0, 7));
panel_delay(500);

// fill a violet circle
matrix.fillCircle((panel_width * 3) / 4, panel_height / 3, circle_radius,
matrix.Color333(7, 0, 7));
panel_delay(500);

// fill the screen with 'black'
screen_clear();

// draw some text!
matrix.setTextSize(1); // size 1 == 8 pixels high
matrix.setTextWrap(false); // Don't wrap at end of line - will do ourselves

uint8_t draw_y = Matrix_Height / 4;
print_centered_rainbow_text(draw_y * 0, "Waveshare", 0);
print_centered_rainbow_text(draw_y * 1, "Electronics", 4);
print_centered_rainbow_text(draw_y * 2, "RGB MATRIX", 8);
char resolution_text[24];
snprintf(resolution_text, sizeof(resolution_text), "%dx%d RGB",
panel_width, panel_height);
print_centered_rainbow_text(draw_y * 3, resolution_text, 12);

panel_delay(2000);
}

代码解释

  • Matrix_Width / Matrix_Height
    • 定义面板分辨率(80×40),用于后续计算文本行位置等布局参数。
  • panel_width / panel_height
    • 从驱动对象读取实际面板宽高,避免与配置不一致。
  • circle_radius
    • 根据最短边计算圆半径,并保证最小为 2,避免半径过小导致不可见。
  • screen_clear()
    • 清屏并准备下一步绘制,用于观察每一步绘制结果是否正确。
  • drawPixel / fillRect / drawRect / drawLine / drawCircle / fillCircle
    • 依次绘制像素、填充矩形、矩形边框、交叉线与圆形,快速验证基础图元与颜色显示是否正常。
  • matrix.setTextSize(1) / matrix.setTextWrap(false)
    • 设置字体大小并关闭自动换行,便于按指定位置输出多行文本。
  • print_centered_rainbow_text()
    • 在不同 y 位置居中输出多行彩虹文字,并用 snprintf() 生成分辨率字符串进行显示。
  • panel_delay(...)
    • 每一步绘制后延时停留,方便肉眼观察屏幕显示效果。

运行效果

Arduino-R7FA4-PLUS-A
Arduino-R7FA4-PLUS-A