一.开发版介绍





二.代码演示
#include "gd32vw55x.h"
#include "systick.h"
#include <stdio.h>
#include "gd32vw553h_eval.h"
#include "oled.h"
#define IMG1_WIDTH 111
#define IMG1_HEIGHT 60
const uint8_t ImgData1[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x08, 0x0c, 0x06, 0x06, 0x02, 0x00, 0x00, 0x80, 0x00,
0x20, 0x30, 0x18, 0x08, 0x04, 0x04, 0x00, 0x00, 0x80, 0x80, 0xc0, 0x60, 0x20, 0x10, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0x80, 0xc0, 0xfc, 0xee, 0xee,
0xac, 0x8c, 0x8c, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x04, 0x86, 0x84, 0x86, 0x17, 0x16, 0xf0, 0xe0, 0xfe, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x01,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x0f, 0x3f, 0x3f, 0xff, 0xdf, 0xff, 0x9f, 0x8f, 0xef, 0x6e, 0x64, 0x00, 0x80,
0x80, 0xf8, 0xfc, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x38, 0xfc, 0xfc, 0xf0, 0x40, 0x00, 0x36, 0x37, 0x47, 0x4f, 0x5f, 0xff, 0xff, 0xde, 0xff, 0x7f,
0xff, 0xff, 0xff, 0xfc, 0x80, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x8f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xf8, 0xfe, 0xfe, 0xfe, 0xfe, 0x7e, 0x3e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1c, 0x1c, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x70, 0x38, 0x38, 0x78, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0xfe, 0xfe, 0xfe, 0xff,
0xff, 0xff, 0xff, 0x7f, 0x3f, 0x3f, 0xbf, 0xbf, 0xff, 0x9e, 0xde, 0xce, 0xee, 0xe7, 0xe3, 0xe3, 0xe3, 0x03, 0x06, 0x07, 0x0e, 0x0c, 0x0c, 0x0e,
0x0f, 0x07, 0x03, 0x03, 0x10, 0xf0, 0xf3, 0xe7, 0xcf, 0xde, 0xdf, 0x9f, 0x9f, 0x9f, 0xbf, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x80, 0xfe, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf0, 0x00, 0x00, 0xc0, 0xe0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xcf, 0x0f, 0x1f, 0x3f, 0x3f, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xc0, 0x40, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x7f,
0xc0, 0xc0, 0x80, 0x00, 0x00, 0x01, 0x6f, 0xfc, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xfe, 0xff, 0xff, 0xff, 0xff,
0x7f, 0xff, 0xff, 0xef, 0xff, 0xf7, 0xf7, 0xfb, 0xfa, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfd, 0xfd, 0xfd, 0xfd,
0xfd, 0xfb, 0xff, 0x0f, 0x1f, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0x1f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7f, 0x03, 0x00, 0x00, 0x03,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1b, 0x30, 0x60, 0xe0, 0xe0, 0xc3, 0x83,
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x0f, 0x03, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x83, 0x81, 0xc1, 0xc1,
0xc1, 0x41, 0x41, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f,
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x78, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xfc,
0xf8, 0xe0, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x0f, 0x0f, 0x03, 0x00, 0xff, 0x0f,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xfc, 0x7f, 0x7f, 0xfe, 0xbe, 0x9e, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0x77, 0x3f, 0x38, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x77, 0x7f, 0x7f, 0xff, 0xfe, 0xfe, 0xe0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xff, 0x7f, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x06, 0x1e, 0x70, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3e, 0x3c, 0x3c, 0x38, 0x3c,
0x3c, 0x3c, 0x3c, 0x3c, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0e, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0d, 0x0e, 0x0e,
0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0c, 0x0c, 0x0c, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x04, 0x0c, 0x0c, 0x0c, 0x0d,
0x09, 0x0b, 0x0b, 0x0b, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
// 图像属性结构体
typedef struct {
uint16_t width; // 图像宽度
uint16_t height; // 图像高度
const uint8_t *data; // 图像数据指针
} Image;
// 图像数组(所有要循环播放的图像)
const Image images[] = {
{IMG1_WIDTH, IMG1_HEIGHT, ImgData1},
};
// 图像总数
#define IMAGE_COUNT (sizeof(images) / sizeof(images[0]))
// LED闪烁函数
void led_spark(void)
{
static __IO uint32_t timingdelaylocal = 0U;
if(timingdelaylocal) {
if(timingdelaylocal < 500U) {
gd_eval_led_on(LED1);
} else {
gd_eval_led_off(LED1);
}
timingdelaylocal--;
} else {
timingdelaylocal = 1000U;
}
}
// 显示单张图像
void show_image(const Image *img)
{
// 清除屏幕
OLED_Clear();
// 计算居中显示的起始坐标(OLED分辨率128x64)
uint8_t x0 = (128 - img->width) / 2;
uint8_t y0 = (64 - img->height) / 2;
// 显示图像
OLED_ShowPicture(x0, y0, img->width, img->height, (uint8_t*)img->data, 1);
OLED_Refresh();
}
int main(void)
{
// 系统初始化
systick_config(); // 配置 systick 定时器
gd_eval_led_init(LED1); // 初始化 LED
OLED_Init(); // 初始化 OLED 屏幕
// 初始显示提示信息
OLED_Clear();
OLED_ShowString(0, 0, "Image Player", 16, 1);
OLED_ShowString(0, 20, "Count: ", 16, 1);
OLED_ShowNum(60, 20, IMAGE_COUNT, 1, 16, 1); // 显示图像总数
OLED_Refresh();
delay_ms(2000);
// 主循环:循环播放所有图像,每2秒切换一次
uint8_t current_img = 0; // 当前显示的图像索引
while(1) {
// 显示当前图像
show_image(&images[current_img]);
// 等待2秒(2000毫秒)
delay_ms(2000);
// 切换到下一张图像(循环)
current_img = (current_img + 1) % IMAGE_COUNT;
// 更新LED状态
led_spark();
}
}
三.结果演示


