激动的心,颤抖的手,第一次参加试用,也是兴奋的不行啊!!!!!!
作为一个相对于专业较为小白的选手,拿到Bettle RP2350板子的第一选择就是先查阅产品的说明,整理基础内容,规划第一步的点亮方案!
产品详情:https://wiki.dfrobot.com.cn/SKU_DFR1188_Beetle_RP2350

我在这里需要提取基础的信息:支持软件/SDK安装方式;引脚说明。
支持软件/SDK安装方式

这里我选择试用较为熟悉的Ardunio IDE作为驱动的软件,接下来尝试安装SDK
步骤为:1.打开Arduino ide;
2. 点击首选项;
3. 添加json;

4. 在开发板内搜索rp2350进行安装

至此,我们已经完成了编辑器的基础操作内容,下面需要开始了解Beetle RP2350的引脚分布,方便下面连接元件,开始我们的点灯之旅!
• Beetle RP2350的引脚分布


了解完之后发现,Bettle RP2350 提供了丰富的接口,下面我们结合OLED屏幕先做第一次的点亮!

oled屏幕采用了I2C连接方式,引脚对应连接:
gnd 屏幕电源负极 连接gnd
vcc 屏幕电源正极 连接 3v3
scl 屏幕i2c连接时钟线 连接D5
sda屏幕i2c连接数据线 l连接d4

连接完成 下面安装oled的驱动库 这里建议试用u8g2库 相对有较好的兼容
在库管理中搜索:U8G2,在搜索结果中安装即可

下面就是程序部分的写入了:
·库引入:
o#include :引入 U8g2lib 库,该库用于与各种图形显示设备(如 SSD1306 OLED 显示屏)进行交互,提供了一系列函数来初始化、控制和在显示屏上绘制图形、文本等内容。
·变量声明与对象初始化:
oU8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE, 0x3C);:
声明并初始化一个 U8G2 对象 u8g2,用于控制 SSD1306 128x64 OLED 显示屏。
U8G2_SSD1306_128X64_NONAME_F_HW_I2C 表示使用硬件 I2C 接口与该型号的 OLED 进行通信。
U8G2_R0 是显示旋转设置,这里表示正常方向。
U8X8_PIN_NONE 表示不使用复位引脚。
0x3C 是 OLED 的 I2C 地址,通过这个地址,RP2040 可以在 I2C 总线上识别并与 OLED 进行通信。
oconst int button = 9;:定义一个常量 button,表示连接按钮的 RP2040 的 GPIO 引脚号为 9。
setup 函数:
oSerial.begin(9600);:初始化串口通信,波特率设置为 9600,以便在调试过程中通过串口输出信息。
oif (!u8g2.begin()) {:尝试初始化 OLED 显示屏。如果初始化失败,通过串口打印 “U8g2 initialization failed”,并进入无限循环 while (1);,防止程序继续执行可能因未初始化成功而导致的错误操作。
opinMode(button, INPUT);:将连接按钮的引脚 9 设置为输入模式,以便读取按钮的状态。
loop 函数:
ou8g2.firstPage();:开始在 OLED 上进行页面绘制,准备在第一页显示内容。
odo { - while (u8g2.nextPage()); 循环:
int mode = digitalRead(button);:读取按钮的当前状态(高电平或低电平),并存储在变量 mode 中。
u8g2.setFont(u8g2_font_ncenB08_tr);:设置要使用的字体为 u8g2_font_ncenB08_tr,以便在显示屏上显示特定风格的文本。
u8g2.setCursor(0, 12);:设置文本绘制的起始光标位置,这里是 (0, 12),表示从显示屏的左上角水平偏移 0 像素,垂直偏移 12 像素处开始绘制。
u8g2.print("DF ROBOT");:在当前光标位置打印字符串 “DF ROBOT”。
类似地,后续设置不同的光标位置并打印 “Beetle RP2040”、按钮状态 mode 和日期 “DATE:2025/5/1”。
u8g2.nextPage();:移动到下一页继续绘制,直到所有页面绘制完成。OLED 显示屏可能有多页,这个循环确保在所有页面上绘制内容。
odelay(30);:延迟 30 毫秒,防止程序运行过快,同时也可以让 OLED 有足够时间显示内容。
#include <U8g2lib.h>
// 初始化U8g2库(I2C接口),指定地址为0x3C
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE, 0x3C);
void setup() {
Serial.begin(9600);
if (!u8g2.begin()) {
Serial.println("lose");
while (1);
}
}
void loop() {
u8g2.firstPage();
do {
int mode = digitalRead(button);
// 显示第一行(四字一行)
u8g2.setFont(u8g2_font_ncenB08_tr); // 更换字体
u8g2.setCursor(0, 12);
u8g2.print("DF ROBOT");
u8g2.setCursor(0, 24);
u8g2.print("Beetle RP2350");
u8g2.setCursor(0, 36);
u8g2.print(mode);
u8g2.setCursor(0, 48);
u8g2.print("DATE:2025/6/1");
} while (u8g2.nextPage());
delay(30);
}
成功点亮oled!!!!!第一步试用结束后发现总体官方的配置特别好,对于初学者的上手很友好!!!下篇我们来利用oled配合按钮在oled制作一个小游戏哈!!!!
小高……2025.06.05
还得是大佬😎
ROCK-PENG2025.06.05
通俗易懂