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,为大容量.

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值