Preprocessor Symbols设置错误导致异常报错error: redefinition of enumerator

报错信息如下:

../../../../GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Include\gd32f10x.h(168): error: redefinition of enumerator 'USBD_HP_CAN0_TX_IRQn'

../../../../GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Include\gd32f10x.h(169): error: redefinition of enumerator 'USBD_LP_CAN0_RX0_IRQn'

问题原因:

Preprocessor Symbols 应设置GD32F10X_MD,但却设置成了GD32F10X_HD

 解析说明:

Preprocessor symbols

Preprocessor symbols 是预处理符号的意思,这里相当于宏定义,我们在使用GD32固件库时,由于固件库里面包含的是GD整个系列单片机的定义。这时在define框中可以作为一个全局宏定义,即选择我要采用固件库中哪部分定义、资源。

USE_STDPERIPH_DRIVER

从字面意思理解就是“使用标准外设驱动”,在C/C++预定义中加入“USE_STDPERIPH_DRIVER”就是允许“使用标准外设驱动”了。至于加入的“GD32F10X_HD“同样能在文件”gd32f10x.h“通过如上所述的方法通过功能查找来进行解释,其实它也是对于对应硬件的某些定义起开关作用罢了。

 GD32F10X_HD&GD32F10X_MD

其实是定义使用芯片的容量大小

/* define GD32F10x */
#if !defined (GD32F10X_MD) && !defined (GD32F10X_HD) && !defined (GD32F10X_XD) && !defined (GD32F10X_CL)
  /* #define GD32F10X_MD */     /*!< GD32F10X_MD: GD32 Medium density devices */
  /* #define GD32F10X_HD */     /*!< GD32F10X_HD: GD32 High density Value Line devices */  
  /* #define GD32F10X_XD */     /*!< GD32F10X_XD: GD32 Extra density devices */
  /* #define GD32F10X_CL */     /*!< GD32F10X_CL: GD32 Connectivity line devices */  
#endif /* define GD32F10x */

MCU 型号

FLASH大小

STM32F10X_LD

STM32F101xx

STM32F102xx

STM32F103xx

16 ~ 32 Kbytes

STM32F10X_MD

STM32F101xx

STM32F102xx

STM32F103xx

64 ~ 128 Kbytes

STM32F10X_HD

STM32F101xx

STM32F103xx

256 ~ 512 Kbytes

STM32F10X_CL

STM32F105xx

STM32F107xx

忽略

  

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值