报错信息如下:
../../../../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 | 忽略 |
??
|