R7FA4 PLUS A 使用说明
R7FA4 PLUS A使用说明
硬件连接
准备材料
- RGB-Matrix-P4-64x32(本产品)
- 杜邦线 2 × 8PIN(本产品)
- R7FA4 PLUS A(须另购)
硬件连接示意图


提示
- 当前这款开发板性能有限,级联效果欠佳,如有相应需求可更换同类型的高性能开发板。
代码说明
R7FA4-PLUS-A.ino
#define Matrix_Width 64
#define Matrix_Height 32
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()生成分辨率字符串进行显示。
- 在不同 y 位置居中输出多行彩虹文字,并用
panel_delay(...):- 每一步绘制后延时停留,方便肉眼观察屏幕显示效果。
运行效果
![]() | ![]() |
|---|

