GD32官方开发环境及固件库使用笔记(一)

1.快速创建GD32工程

使用GD32官方的开发环境(以下称GD Eclipse)暂时只支持GD32E23x和GD32F31x等系列的单片机进行图形配置及代码生成(这些系列同时也提供HAL固件库)。其他系列的单片机尽管无法进行图形配置和自动生成代码,但也可以利用其快速创建项目工程,相比使用标准版Eclipse来说,省去自行下载固件库和配置工程的麻烦,同时还可添加官方的初始化代码(尽管很简陋),方法如下:

点击菜单栏File->New->Project…,弹出创建新工程对话框。

deb8a02ed5d04e608711f72d52ece928.pngb4f7e885417e4c36940080011d0a13ee.png

4f440a08d9214ba2bfc5b7ef79774e4c.pnga29c8ca0b99b4512a77b360fca28eb14.png

通过选择目标芯片,自动拷贝对应的固件库相关文件,并且配置好对应的编译环境,可减少开发工作中Ctrl+C/V的使用频率。

2.修改systick中断优先级

GD官方开发环境创建工程时生成的初始化代码中,SysTick滴答定时器中断的优先级别默认设置为最高的0,需要把优先级别降低,因为一般都会使用SysTick滴答定时器来延时,该中断频繁响应会影响到其他重要中断的实时性,同时注意不要在中断服务函数(包括中断回调函数)中调用SysTick的延时函数。

3.开启串口打印功能

在GD Eclipse环境中要实现printf函数打印log信息,方法不同于Keil环境。

由于GD Eclipse环境中使用的是标准C库,printf函数的底层调用的是_write() 函数实现输出,所以要重写write函数:

int _write (int fd, char *pBuffer, int size)
{  
    for (int i = 0; i < size; i++)
    {
		usart_data_transmit(USART_PORT, (uint8_t)pBuffer[i]);
		while(RESET == usart_flag_get(USART_PORT, USART_FLAG_TBE));
    }
    return size;  
}

注意该函数在CMSIS库中也定义了,需要将其屏蔽,同时需要修改Eclipse的配置,见下图:

5afe055972504b4ea658db8f5f95d055.png

注意:该方法使用GCC的libgcc.a进行使用printf,会消耗较大的flash空间(实测会增加10K),小容量的单片机慎用。

使用GD官方的固件库时,推荐采用独立的函数来实现log日志打印,例如:

int uartport_debug_putstring (const uint8_t *pBuffer)
{
    uint8_t pchar;
    int i=0;
    if(debug_com_periph==0)return -1;
    pchar = pBuffer[i++];
    while(pchar!='\0'){
        while(RESET == usart_flag_get (debug_com_periph, USART_FLAG_TBE));
        usart_data_transmit (debug_com_periph, pchar);
        pchar = pBuffer[i++];
    }
    return i;
}

void log_printf( const char * format, ...)
{
    char str[64]={0};
    va_list ap;
    va_start(ap, format);
    (void)vsnprintf(str, sizeof(str)-1, format, ap);
    va_end(ap);
    uartport_debug_putstring((const uint8_t *)str);
}

 

 

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Introduction:GD32F10x标准固件。适用于GD32F10x系列MCU,与Cortex-M微控制器软件接口标准(CMSIS)兼容。固件包括程序、数据结构和宏定义,覆盖所有集成外设的特征,并包括了全部相关驱动和示例程序。 Introduction:GD32F1x0标准固件。适用于GD32F1x0(130/150/170/190)系列MCU,与Cortex-M微控制器软件接口标准(CMSIS)兼容。固件包括程序、数据结构和宏定义,覆盖所有集成外设的特征,并包括了全部相关驱动和示例程序 Introduction:GD32F10x系列IAR7.4、Keil MDK 4.74、Keil MDK 5.15 及更高版本支持安装文件。 Introduction:GD32F1x0 外设驱动和通用例程 ,支持 GD32F130 / GD32F150 / GD32F170 / GD32F190 包含USB Device驱动和例程 ,仅支持 GD32F150 提供 Keil 和 IAR 两种工程 ,分别在 Keil v4.7x/v5.18a , IAR v7.4 验证通过 Introduction:GD32F1x0 分散加载例程 ,支持 GD32F130 / GD32F150 / GD32F170 / GD32F190 例程演示了如何将代码分配到Flash指定区域,参考这个例程,客户可将非关键代码分配到Flash高地址空间。 Introduction:包含三个文件,具体说明如下: 1. GigaDevice.GD32F1x0_Addon.3.1.0.exe Keil4 环境补丁,支持 Keil v4.7x , 2. GigaDevice.GD32F1x0_DFP.3.1.0.pack Keil5 在线支持包, 支持 Keil v5.15 及以上版本; 3. IAR_GD32F1x0_ADDON.1.0.2.exe IAR 环境补丁,支持 IAR v7.4 以上版本. Introduction:Pdsc Installation of support files for Keil MDK 5.13 or later version

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值