萤火工场GD32VW553-IOT开发板注意事项及使用(串口发送)

分享作者:user202112288848
作者昵称:xcc1658346101
评测品牌:萤火工场
评测型号:GD32VW553-IOT
发布时间:2025-02-21 10:20:19
0
概要
介绍了萤火工场GD32VW553-IOT开发板使用注意事项及串口发送
开源口碑分享内容

一、注意事项:

1.焊接完排针一定要测量一下是否短路!!!因为板子间距太小了,焊接时很容易短路

2.

实物上的BOOT0、BOOT1的上拉电阻都没焊接,所以使用板子上的排针跳线帽去接是没用的。

但是我们在看芯片数据手册时可以看到,如果用串口下载程序时BOOT0需要为1。

但是板子有一个很巧妙的设计,BOOT0是和PC8接在一起,并且和3V3是紧挨着的,所以我们只需将BOOT0的跳线帽拔掉,然后用镊子短接PC8和3V3即可(这种操作感觉比用跳线帽配置更简单)

二、串口测试程序

编译软件我用的是EmbeddedBuilder点击即可下载

本来还想加个点灯的程序的,但是发现开发板上没有多余的灯让我去点,所以现在就只有串口了

串口发送程序是在官方例程上改的,因为没有灯所以删除了官方的灯闪烁代码

/********主函数代码*******/
#include "gd32vw55x.h"
#include "systick.h"
#include <stdio.h>
#include "main.h"
#include "gd32vw553h_eval.h"


int main(void)
{
    /* configure systick */
    systick_config();
    eclic_priority_group_set(ECLIC_PRIGROUP_LEVEL3_PRIO1);
    gd_eval_com_init(EVAL_COM0); //tx pb15  rx pa8

    /* print out the clock frequency of system, AHB, APB1 and APB2 */
    printf("\r\nCK_SYS is %d\r\n", rcu_clock_freq_get(CK_SYS));
    printf("\r\nCK_AHB is %d\r\n", rcu_clock_freq_get(CK_AHB));
    printf("\r\nCK_APB1 is %d\r\n", rcu_clock_freq_get(CK_APB1));
    printf("\r\nCK_APB2 is %d\r\n", rcu_clock_freq_get(CK_APB2));

    while(1)
    {
    	int i;
    	for(i=0;i<100;i++)
    	{
    		delay_1ms(1000);
    		printf("now: %d\r\n", i);

    	}
    }

}
/*******串口初始化代码********/
void gd_eval_com_init(uint32_t com)
{
    /* enable GPIO clock */
    uint32_t COM_ID = 0U;
    if(EVAL_COM0 == com)
    {
        COM_ID = 0U;
    }

    rcu_periph_clock_enable(RCU_GPIOB);
    rcu_periph_clock_enable(RCU_GPIOA);

    /* enable USART clock */
    rcu_periph_clock_enable(COM_CLK[COM_ID]); //RCU_USART0

    /* connect port to USARTx_Tx */
    gpio_af_set(GPIOB, GPIO_AF_8, COM_TX_PIN[COM_ID]);

    /* connect port to USARTx_Rx */
    gpio_af_set(GPIOA, GPIO_AF_2, COM_RX_PIN[COM_ID]);

    /* configure USART Tx as alternate function push-pull */
    gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_PULLUP, COM_TX_PIN[COM_ID]);
    gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_25MHZ, COM_TX_PIN[COM_ID]);

    /* configure USART Rx as alternate function push-pull */
    gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_PULLUP, COM_RX_PIN[COM_ID]);
    gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_25MHZ, COM_RX_PIN[COM_ID]);

    /* USART configure */
    usart_deinit(com);
    usart_baudrate_set(com, 115200U);
    usart_receive_config(com, USART_RECEIVE_ENABLE);
    usart_transmit_config(com, USART_TRANSMIT_ENABLE);
    usart_enable(com);
}

该函数实现功能:上电首先发送system, AHB, APB1 and APB2时钟频率,然后每100ms发送一个数字

效果截图:

三、烧录

1.下载GD32 All In One Programmer

2.首先先将串口工具与开发板连接接好:3V3<->3V3,GND<->GND,TX<->PA8,RX<->PB15

拔掉BOOT0的跳线帽(离复位按键远的那个),将串口工具插上电脑,用镊子等工具短接3V3和PC8(注意不要松开),按一下板子上的复位按钮,大约1秒左右松开3V3号PC8之间的短接,然后按图设置即可


本篇文章就到此结束了,有什么问题大家可以在评论区讨论,演示视频已经上传B站了

全部评论
暂无评论
0/144