GD32VW553-IOT V2 测评和移植

分享作者:chuan
评测品牌:萤火工场
评测型号:GD32VW553-IOT-V2
发布时间:2025-09-07 17:29:55
6
概要
本文介绍了GD32VW553-IOT V2开发板的使用体验
开源口碑分享内容

GD32VW553-IOT V2 介绍

1. 前不久在ICEasy商城上面申请了GD32VW553-IOT的开发板, 经过一段时间的使用和开发, 发现了一些使用过程的痛点, 比如串口ISP更新固件不方便, 刚开始需要手动焊接电阻以及跳线, 这些都给开发带来了一定的难度。

2. 没想到萤火工场的产品更新速度很快, 就在V1使用没多久, 大概也就一周左右时间, 工作人员就联系我说GD32VW553-IOT V2开发板已经发布了, 让我申请一块试用一下, 于是乎我又申请了一块GD32VW553-IOT V2开发板。

3. 将其实在写下这篇文章的时候, 已经把玩了一周左右的时间, 但是平时工作比较忙, 前面的时间只做了和V1的对比, 以及V1的部分程序移植到V2上, 程序移植部分还是基于Cmake+vscode这套从官方SDK剥离出来的。知道今天才有时间把测评发布出来, 感谢ICEasy和萤火工场让我有机会试用这款开发板。

4. 作为一款基于RISC-V架构的物联网开发板, GD32VW553-IOT V2在功能上有显著提升。本文将对GD32VW553-IOT V2进行全面评测, 包括其硬件规格、性能表现、易用性以及适用场景等方面, 以帮助开发者更好地了解这款开发板的优势和潜力。

GD32VW553-IOT V2 测评

1. 看一下实物图和系统框图

2. 接口定义和原理图

3. 升级的地方

 - 增加一颗led灯和一个轻触开关 K2, K1是原本就有, 用于复位MCU的

 - 增加背面丝印, 方便对照PIN脚

 - 增加一颗CH340N芯片, 不用在外接USB转串口模块, 一根USB Type-C就可以供电、下载程序以及串口打印

 - Boot模式的切换由跳线帽改为拨码开关, 更加方便, 也不需要焊接电阻了

 - PCB黑色看起来更高级一点, 可能考虑到PCB的面积, 去除了屏蔽罩


GD32VW553-IOT V2 移植

1. 移植代码

在之前的测评文章中, 我提到过V1的程序是基于Cmake+vscode这套从官方SDK剥离出来的, 现在V2的程序也是基于这套, 只不过需要做一些修改, 主要是将串口号和对应的PIN修改, 保持和原理图中的一致, 其他的代码基本上不需要修改, 因为第二版提供了一个LED和一个按键, 所以在程序进行修改, 添加这部分的内容。

 - Windows 10

 - VSCode + Cmake + MinGW + OpenOCD + GDB

 - GD32VW553-IOT V2开发板

 - USB Type-C数据线

2. 下载步骤

 - 连接USB线, 电脑需要安装CH340的驱动, 安装过的可以忽略

 - 程序编译, 编译成功后生成bin文件

 - 打开All in One Programmer, 选择bin文件, 下载

 - 可以看到LED灯点亮

3.  具体代码

基于的代码是之前测评里面修改好的, 这里就不重复贴出来了, 只贴修改的部分

 - 测评链接https://blog.csdn.net/qq_34935373/article/details/151012737?spm=1001.2014.3001.5501

 - 代码仓库链接https://github.com/1508912767/gd32vw553_boot

 - main.c

  // ...省略部分代码...


  // #define CONFIG_BYPASS_MBL
  #if CONFIG_BOARD == PLATFORM_BOARD_32VW55X_EVAL
  #define LOG_UART        UART1
  #else
  #define LOG_UART        UART1
  #endif


  // ...省略部分代码...


  /* 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_2);
  gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_25MHZ, GPIO_PIN_2);
  GPIO_BC(GPIOB) = GPIO_PIN_2;
  
  /* configure key GPIO port */
  gpio_mode_set(GPIOB, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_11);


  while(1)
  {
      for (int i = 0; i < 40*1000*1000; i++)
      {
          __NOP();
      }
      
      GPIO_TG(GPIOB) = GPIO_PIN_2;


      if(gpio_input_bit_get(GPIOB, GPIO_PIN_11) == RESET)
      {
          break;
      }
  }


  // ...省略部分代码...


  BootFailed:
    while(1)
    {
        // Error indication: fast blink
        for (int i = 0; i < 1*1000*1000; i++)
        {
            __NOP();
        }
        GPIO_TG(GPIOB) = GPIO_PIN_2;
    }
  // ...省略部分代码...

实现的功能

 - 上电之后会有一些串口打印

 - LED灯会每隔一段时间闪烁, 此时速度较慢

 - 按下按键K2, LED灯会停止闪烁, 此时LOG有输出, 显示boot跳转app的信息

 - 如果boot跳转app失败, LED灯会快速闪烁



全部评论
暂无评论
0/144