萤火工场GD32VW553-IOT v2开发板测评 OLED显示
分享作者:u_cudutnlyfuv6
评测品牌:萤火工场
评测型号:GD32VW553-IOT-V2
发布时间:2025-10-23 09:52:50
1
前言
开发板入门测评
开源口碑分享内容

最近做项目需要用到物联网开发板,刚好看到萤火工场出了新品,便申请了一片来试试。


到手后先看外观,这板子做工确实扎实,边缘处理得很光滑,没有毛刺。最让我惊喜的是丝印 —— 每个引脚旁都印着清晰的标识,完全不用对着原理图翻来翻去。


上一代产品是没有丝印的,接个传感器得反复核对引脚图,稍不注意就接错,调试时特别耽误时间。这次新品加了丝印,虽然是个小改动,却实实在在解决了开发者的痛点,对新手友好度提升了不少,能明显感觉到厂商在细节上用了心。整体来看,这板子不仅颜值在线,实用性也很能打,后续项目开发应该能省不少事。


下面是产品的实物图:

以下是开发板原理图:

以下是移植过程:

在江科大OLED显示资料里下载要移植的代码OLED.c、OLED.h、OLED_Data.c、OLED_Data.h(UTF8格式的,不然会乱码)

然后创建工程目录,将文件放进来:

选择Project选项,打开properties

接下来添加头文件目录

再然后打开我们的OLED.c文件,将下面三个函数修改

void OLED_W_SCL(uint8_t BitValue)

{

/*根据BitValue的值,将SCL置高电平或者低电平*/

gpio_bit_write(GPIOA,GPIO_PIN_3,BitValue);

/*如果单片机速度过快,可在此添加适量延时,以避免超出I2C通信的最大速度*/

//...

}

/**

 * 函    数:OLED写SDA高低电平

 * 参    数:要写入SDA的电平值,范围:0/1

 * 返 回 值:无

 * 说    明:当上层函数需要写SDA时,此函数会被调用

 *           用户需要根据参数传入的值,将SDA置为高电平或者低电平

 *           当参数传入0时,置SDA为低电平,当参数传入1时,置SDA为高电平

 */

void OLED_W_SDA(uint8_t BitValue)

{

/*根据BitValue的值,将SDA置高电平或者低电平*/

gpio_bit_write(GPIOA,GPIO_PIN_4,BitValue);

/*如果单片机速度过快,可在此添加适量延时,以避免超出I2C通信的最大速度*/

//...

}

/**

 * 函    数:OLED引脚初始化

 * 参    数:无

 * 返 回 值:无

 * 说    明:当上层函数需要初始化时,此函数会被调用

 *           用户需要将SCL和SDA引脚初始化为开漏模式,并释放引脚

 */

void OLED_GPIO_Init(void)

{

uint32_t i, j;

/*在初始化前,加入适量延时,待OLED供电稳定*/

for (i = 0; i < 1000; i ++)

{

for (j = 0; j < 1000; j ++);

}

/*将SCL和SDA引脚初始化为开漏模式*/

rcu_periph_clock_enable(RCU_GPIOA);

gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE,GPIO_PIN_3 | GPIO_PIN_4);

gpio_output_options_set(GPIOA, GPIO_OTYPE_OD, GPIO_OSPEED_25MHZ,GPIO_PIN_3 | GPIO_PIN_4);

/*释放SCL和SDA*/

OLED_W_SCL(1);

OLED_W_SDA(1);

}

一键获取完整项目代码


修改为GD32的过程代码


void OLED_W_SCL(uint8_t BitValue)

{

/*根据BitValue的值,将SCL置高电平或者低电平*/

   /*改为你自己的引脚*/

gpio_bit_write(GPIOA,GPIO_PIN_3,BitValue);

/*如果单片机速度过快,可在此添加适量延时,以避免超出I2C通信的最大速度*/

//...

}

/**

 * 函    数:OLED写SDA高低电平

 * 参    数:要写入SDA的电平值,范围:0/1

 * 返 回 值:无

 * 说    明:当上层函数需要写SDA时,此函数会被调用

 *           用户需要根据参数传入的值,将SDA置为高电平或者低电平

 *           当参数传入0时,置SDA为低电平,当参数传入1时,置SDA为高电平

 */

void OLED_W_SDA(uint8_t BitValue)

{

/*根据BitValue的值,将SDA置高电平或者低电平*/

   /*改为你自己的引脚*/

gpio_bit_write(GPIOA,GPIO_PIN_4,BitValue);

/*如果单片机速度过快,可在此添加适量延时,以避免超出I2C通信的最大速度*/

//...

}

/**

 * 函    数:OLED引脚初始化

 * 参    数:无

 * 返 回 值:无

 * 说    明:当上层函数需要初始化时,此函数会被调用

 *           用户需要将SCL和SDA引脚初始化为开漏模式,并释放引脚

 */

void OLED_GPIO_Init(void)

{

uint32_t i, j;

/*在初始化前,加入适量延时,待OLED供电稳定*/

for (i = 0; i < 1000; i ++)

{

for (j = 0; j < 1000; j ++);

}

/*将SCL和SDA引脚初始化为开漏模式*/

   /*改为你自己的引脚*/

rcu_periph_clock_enable(RCU_GPIOA);

gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE,GPIO_PIN_3 | GPIO_PIN_4);

gpio_output_options_set(GPIOA, GPIO_OTYPE_OD, GPIO_OSPEED_25MHZ,GPIO_PIN_3 | GPIO_PIN_4);

/*释放SCL和SDA*/

OLED_W_SCL(1);

OLED_W_SDA(1);

}

接下来与我们再STM32中的用法就一样啦,就可以愉快的食用啦

全部评论
暂无评论
0/144