

[] SPI Interface definition
DC ==> GPIO42
CS ==> GPIO41
SCLK ==> GPIO40
MOSI ==> GPIO39
BL ==> GPIO14
RESET ==> GPIO38
[] SD
SD_CS ==> GPIO15
SD_MOSI ==> GPIO16
SD_CLK ==> GPIO17
SD_MISO ==> GPIO18
[] RGB
RGB ==> GPIO13
[] 下载并安装 Arduino IDE: https://www.arduino.cc/en/software
[] 在 Arduino IDE 中导入 ESP32 系列芯片和主板库
请下载 Espressif Systems 的 Esp32 3.0.3 版本,其他版本可能存在问题。
[] 导入 ESP32-C6-0.85 库
打开下载的演示程序,进入 ESP32-C6-0.85-demo\Arduino\libraries 文件夹,并将 lib 目录下的所有文件复制到库存储路径。
C:\Documents\Arduino\libraries(点击确认如何查看您自己的路径)
注意:如果您之前安装过 LVGL 库,请删除之前的 LVGL 库,并将 lib 文件夹中的文件复制到 libraries 文件夹。
版本兼容性说明:
LVGL 及其驱动库的不同版本之间存在很强的依赖关系。例如,为 LVGL v8 编写的驱动程序可能与 LVGL v9 不兼容。为确保示例的稳定复现,建议使用上表列出的特定版本。混用不同版本的库可能会导致编译失败或运行时异常。.
】Arduino 工程参数设置
运行demo以及现象
上电默认
[] 红蓝绿刷屏和RGB闪烁,之后进入天气时钟效果。手机设置
wifi热点名为: spotpear 密码:spotpear123
之后设备会自动连接你的手机热点,之后进入太空人天气时钟界面。
[] 长按一下boot按键。且到flash播放默认的gif
[] 再次长按boot按键。进入SD动态图播放,进入SD模式之后,短按boot按键切换不同的视频。[] 再次循环到天气时钟。
RGB_LCD
程序说明
● 本示例演示了RGB和LCD同时刷屏显示
● setup() 函数:
undefined LCD_Init():初始化 GC9107 显示屏(配置 SPI、屏幕指令、背光等);
undefined WS2812_Init():初始化 GC9107 显示屏(配置 SPI、屏幕指令、背光等)
● loop() 函数:
undefined 不断刷新LCD和RGB
undefined delay(1000):延时1秒,保证刷新频率。
运行效果

_Video_demo
程序说明
● 本示例演示了 SD 卡检测、视频多媒体播放,图片播放
代码分析
● setup() 函数
undefined 硬件初始化:依次完成 Flash 测试、GC9107 显示屏初始化、背光设置、WS2812B 灯带初始化;
undefined RGB 自检:屏幕和灯带同步依次显示红 / 绿 / 蓝三色,各保持 1 秒后关闭灯带;
undefined SD 卡检测:识别 SD 卡类型,无卡则屏幕显示错误信息并终止后续流程;有卡则检查视频文件,存在视频则初始化视频播放模块,
● loop() 函数
undefined 保底逻辑:SD 卡未检测到时,仅延迟循环,不执行任何播放操作;
undefined 播放分流:已初始化视频模块则调用 Video_Play_Loop() 循环播放视频;
运行效果
如果有sd卡,按下按键切换视频,无卡则屏幕显示错误信息并终止后续流程

_LVGL_WeatherClock
程序说明
● 本示例演示了天气时钟系统和视频播放,在 GC9107 显示屏上呈现天气时钟,按键切换视频的功能,兼顾运行流畅性与 CPU 资源占用优化。
代码分析
● setup 函数
undefined 串口初始化:以 115200 波特率开启串口,用于系统日志打印,便于调试;
undefined 硬件 / 驱动初始化:依次执行 Flash 测试、GC9107 显示屏初始化、LVGL 图形库初始化、SD 卡初始化;
undefined 外设配置:将显示屏背光调至 100%,初始化天气时钟业务逻辑;
undefined 日志输出:通过串口反馈初始化进度,便于排查启动异常。
● loop 函数
undefined LVGL 核心处理:调用 Timer_Loop,保证 LVGL 定时器、动画正常更新;
undefined 业务逻辑循环:执行 WeatherClock_Loop,处理天气时钟的实时数据更新与显示逻辑;
undefined 循环检测按键:判断按键是否按下,如果按下,则执行相应操作
undefined 资源优化:仅保留 1ms 延迟,既避免 CPU 占用过高,又保证 LVGL 高频调度,兼顾流畅性与资源消耗。