- 外观与尺寸
开发板个头小巧,尺寸设计较为紧凑,方便携带和集成到各种项目中。提一点建议,不少博主都提过引脚丝印问题和TYPEC只能供电问题,不多说了;
2、开发环境搭建
要进行开发,首先需要下载相关的软件工具。我们需要前往 iCEasy 商城下载专区,找到并下载 GD32 Embedded Builder(代码开发软件)、GD32 All-In-One Programmer(代码下载软件)以及 GD32VW55x Firmware Library(标准固件库)。下载过程较为简单,只需按照网站提示操作即可。
1)GD32 Embedded Builder:下载完成后,解压得到的文件无需复杂的安装过程,直接运行即可。打开软件后,点击 Browse 选择一个文件夹作为工作区,完成后点击 Launch 进入软件主界面。该软件界面简洁明了,对于熟悉嵌入式开发的用户来说,很容易上手。它提供了丰富的代码编辑功能,如语法高亮、代码自动补全等,能够提高开发效率。
2)GD32 All-In-One Programmer:同样解压后即可使用。这款软件用于将编译好的二进制或者十六进制文件下载到开发板上,其操作界面直观,连接好开发板后,选择对应的串口和文件,即可进行下载操作。
3)标准固件库:下载的标准固件库 GD32VW55x_Firmware_Library_V1.2.0 里有使用指南文档 GD32VW55x_Firmware_Library_V1.2.0\Docs\User Guide,文档中有各标准库函数的详细说明,为开发者在开发过程中提供了很大的帮助。虽然该固件库的例程是 GD 基于他们自家开发板写的,但经过适当修改,完全可以用于 GD32VW553-IOT 开发板的学习和开发。
3、简单点灯测试代码
#include "gd32vw55x.h"
#include <stdio.h>
#include "systick.h"
static void led_flash(uint8_t times);
/*!
\brief main function
\param[in] none
\param[out] none
\retval none
*/
int main(void)
{
/* enable the global interrupt */
eclic_global_interrupt_enable();
eclic_priority_group_set(ECLIC_PRIGROUP_LEVEL3_PRIO1);
systick_config();
/* enable the LED2 GPIO and K2-Tamper/Wakeup GPIO clock */
rcu_periph_clock_enable(RCU_GPIOA);
/* configure LED2 GPIO port */
gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_5);
gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_25MHZ, GPIO_PIN_5);
/* reset LED GPIO pin */
gpio_bit_reset(GPIOA, GPIO_PIN_5);
/* flash the LED for test */
led_flash(1);
rcu_periph_clock_enable(RCU_SYSCFG);
/* configure K2-Tamper/Wakeup pin as input */
gpio_mode_set(GPIOA, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_0);
/* enable and set key EXTI interrupt priority */
eclic_irq_enable(EXTI0_IRQn, 1, 1);
/* connect key EXTI line to key GPIO pin */
syscfg_exti_line_config(EXTI_SOURCE_GPIOA, EXTI_SOURCE_PIN0);
/* configure key EXTI line */
exti_init(EXTI_0, EXTI_INTERRUPT, EXTI_TRIG_FALLING);
exti_interrupt_flag_clear(EXTI_0);
while(1) {
}
}
/*!
\brief flash the LED for test
\param[in] times: times to flash the LEDs
\param[out] none
\retval none
*/
static void led_flash(uint8_t times)
{
uint8_t i;
for (i = 0;i < times;i++) {
/* delay 500 ms */
delay_1ms(500);
/* turn on the LED */
gpio_bit_set(GPIOA, GPIO_PIN_5);
/* delay 500 ms */
delay_1ms(500);
/* turn off the LED */
gpio_bit_reset(GPIOA, GPIO_PIN_5);
}
}
官网提供的资料很齐全,包含例程、下载、烧录工具等;

