【萤火工场 GD32VW553-IOT开发板】点亮RGB彩灯
分享作者:user201810275686
评测品牌:萤火工场
评测型号:GD32VW553-IOT
发布时间:2025-03-31 13:33:51
0
前言
前段时间在iCEasy商城上申请了一块GD32VW553-IOT开发板,这块开发板是兆易创新基于RISC-V内核的32位MCU开源硬件,支持2.4GHz Wi-Fi 6及BLE5.2无线连接标准。适合开发WiFi蓝牙物联网lOT设备,智能家具。由于产品比较新,因此起初资料并没公开,现在好了,官方提供了详尽的参考设计资料,评估起来也更方便了。
开源口碑分享内容

一、资料获取

    开发者可通过兆易创新的官网获取关于该板卡的全套资料,链接: GD32VW5全部资料。

   主要包含:

  ①、编译IDE:EmbeddedBuilder_v1.4.7.26843.7z

  ②、板卡SDK工程:GD32VW55x_Demo_Suites_V1.2.0.7z

  ③、程序烧录软件:GD32AllInOneProgrammer_win_V4.2.10.28180.7z

  ④、如附件中的“GD32VW55原理图”,“GD32VW553-IOT用户手册”,“GD32VW553-IOT硬件规格书”

二、编译环境搭建

     1、由于该开发板是基于RISC-V内核,因此采用的IDE是基于类似Eclipse的EmbeddedBuilder工具,下载完“EmbeddedBuilder_v1.4.7.26843.7z”文件后,直接解压到不含中文、空格字符的文件夹路径中。该工具无需安装,直接打开路径下“EmbeddedBuilder_v1.4.7.26843\EmbeddedBuilder”中的“Embedded Builder.exe”文件即可运行。在该工具的“EmbeddedBuilder_v1.4.7.26843\Tools”文件夹下存放各编译工具链,压缩包中已包含,打开该工具自动会加载进编译环境中。

     2、将下载的“GD32VW55x_Demo_Suites_V1.2.0.7z”文件解压,将“GD32VW55x_Demo_Suites_V1.2.0\GD32VW553H_EVAL_Demo_Suites\Projects\01_GPIO_Running_LED”目录加载到EmbeddedBuilder中,然后编译,“GD32VW55x_Demo_Suites_V1.2.0\GD32VW553H_EVAL_Demo_Suites\Projects\01_GPIO_Running_LED\eclipse\GD32VW553xM”目录下生成了“GD32VW553H_EVAL.bin”文件,说明完成编译环境的搭建。

三、代码编写

    原工程代码中,采用GPIOA_4,GPIOA_5,GPIOA_6三个引脚做为控制LED灯的信号脚,板上并无焊接LED,结合“用户手册”可知,GPIOA_6与GPIOA_7做为UART2的复用管脚,因此,如果采用UART2接口去烧录程序,接口上存在冲突。笔者这里使用GPIOB_11,GPIOB_12,GPIOB_13做为驱动RGB灯的三个信号脚。自制的RGB灯板模块是采用共阴性,因此给高电平则点亮LED灯。

#include "gd32vw55x.h"
#include "systick.h"
#include <stdio.h>
#include "gd32vw553h_eval.h"

#define Time 500
/*!
    \brief      main function
    \param[in]  none
    \param[out] none
    \retval     none
*/
int main(void)
{
    systick_config();

    /* enable the LED clock */
    rcu_periph_clock_enable(RCU_GPIOB);

    /* configure LED GPIO port */
    gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13);
    /* reset LED GPIO pin */
    gpio_bit_reset(GPIOB, GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13);

    while(1) {
        /* turn on LED1, turn off LED3 */
        gpio_bit_set(GPIOB, GPIO_PIN_11);
        gpio_bit_reset(GPIOB, GPIO_PIN_13);
        delay_1ms(Time);

        /* turn on LED2, turn off LED1 */
        gpio_bit_set(GPIOB, GPIO_PIN_12);
        gpio_bit_reset(GPIOB, GPIO_PIN_11);
        delay_1ms(Time);

        /* turn on LED3, turn off LED2 */
        gpio_bit_set(GPIOB, GPIO_PIN_13);
        gpio_bit_reset(GPIOB, GPIO_PIN_12);
        delay_1ms(Time);

        /* turn on LED1,LED2,turn off LED3 */
		gpio_bit_set(GPIOB, GPIO_PIN_11);
		gpio_bit_set(GPIOB, GPIO_PIN_12);
		gpio_bit_reset(GPIOB, GPIO_PIN_13);
		delay_1ms(Time);

        /* turn on LED2,LED3,turn off LED1 */
		gpio_bit_set(GPIOB, GPIO_PIN_12);
		gpio_bit_set(GPIOB, GPIO_PIN_13);
		gpio_bit_reset(GPIOB, GPIO_PIN_11);
		delay_1ms(Time);

        /* turn on LED3,LED1,turn off LED2 */
		gpio_bit_set(GPIOB, GPIO_PIN_13);
		gpio_bit_set(GPIOB, GPIO_PIN_11);
		gpio_bit_reset(GPIOB, GPIO_PIN_12);
		delay_1ms(Time);

        /* turn on LED1,LED2,LED3 */
		gpio_bit_set(GPIOB, GPIO_PIN_11);
		gpio_bit_set(GPIOB, GPIO_PIN_12);
		gpio_bit_set(GPIOB, GPIO_PIN_13);
		delay_1ms(Time);
    }
}

四、硬件准备

        收到的GD32VW553-IOT开发板两边的管脚是没焊接插针的,因此需要先手动焊接好2.54mm插针,当然焊插座也行。至于排针靠正面焊接还是靠底面焊接,根据个人需要吧,怎么方便怎么来。这里笔者将插针焊接在底面,正面可使用杜邦线直连针脚;如若将插针焊接在正面,使用底面上的排针接入面包板中,也是比较方便的。排针焊好后,下载程序需要采用串口调试工具,即USB转TTL模块。还有准备一块共阴极的RGB灯板模块。

五、硬件连线

     这里笔者采用UART2接口烧写程序,由于更新程序需要注意boot模式,结合“用户手册”可知。

 因此J3处的跳线帽设置如下:运行应用程序时,boot0,boot1的跳线帽均靠板上天线这边;运行bootloader,烧录程序时,boot0需要拉高,即将boot0处的跳线帽连接换成靠Type-C接口边。

结合上面的部分原理图可知,boot0拉高时与R4电阻相连,而板上实物并没有焊接该1KΩ电阻,因此进入bootloader需要手动将boot0拉高,即使用一根杜邦线将PC8与3V3短接,或者镊子短接。硬件实物连接如下:

六、烧录程序

     打开“GD32AllInOneProgrammer.exe”烧录软件,设置J3跳线帽,将PC8与3V3短接,使板子进入bootloader阶段。硬件连线示意图如下:


       接着在烧录软件中选择串口模块烧写,连接好当前的串口号,选择对应的设备型号,加载刚才编译完成后生成的hex文件,最后点击“Download”即可完成程序烧录。

七、点灯效果

    烧录完成后,再将J3处的boot0跳线帽调过来,即将boot0拉低,然后重启开板后,点灯程序则更新ok,正如下图所示。个人感觉该板设计存在些许不足之处,小板底面并没有将管脚丝印标识;跳线帽易脱落,而且这种不太好找,本人使用一根杜邦线的插孔,压扁来代替掉落的跳线帽;板上的电阻有缺失焊接,且板上并无设置用户LED,但demo工程中有点灯设置。以上种种也许是该板比较新的原故吧,希望萤火工场做进一步优化,也期待萤火工场推出越来越多的新品,越办越红火!


全部评论
暂无评论
0/144