Keil中更改主控芯片导致的编译报错:ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt

前言

之前keil中一直使用的是STM32F103ZET6芯片,现在要用F103C4型号,本来我以为直接更改魔法棒里的devices的芯片型号就行,但是随后的编译发现报了错,情况如下:
在这里插入图片描述
在这里插入图片描述
也就是说,主要报错是:

…\USER\stm32f10x.h(298): error: #67: expected a “}”**
ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt

一、报错原因:宏定义与型号不匹配

比如F103ZET6芯片,
在这里插入图片描述
宏定义为:STM32F10X_HD,USE_STDPERIPH_DRIVER

因此,当更改为F103C4系列芯片时,宏定义改为:
在这里插入图片描述

二、注意事项

宏定义STM32F10X_MD的作用:
在stm32f10x.h文件中有这样预处理代码

#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL)
 #error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"
#endif

这些宏定义要根据芯片的容量来选择定义的,STM32F10X_LD为小容量、STM32F10X_MD为中容量、STM32F10X_HD为大容量,这里的容量是指FLASH的大小,判断方法如下:

16KB≤FLASH≤32KB 选择:STM32F10X_LD

64KB≤FLASH≤128KB 选择:STM32F10X_MD

256KB≤FLASH≤512KB 选择:STM32F10X_HD

常用的STM32C8T6是64K,为中容量,STM32F103ZET6为512K,为大容量.

猜你喜欢

转载自blog.csdn.net/qq_53092944/article/details/130851321
ADC