GD32VW553-IOT-V2驱动0.96oled屏幕

分享作者:wx17577408777360
作者昵称:ui8o
评测品牌:萤火工场
评测型号:GD32VW553-IOT-V2
发布时间:2025-10-09 11:00:20
2
概要
这是最新的GD32VW553-IOT-V2开发版,有幸得到样片使用,十分感谢iCEasy的支持。
开源口碑分享内容

一.开发版介绍








二.代码演示


#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();

}

}

三.结果演示



全部评论
暂无评论
0/144