问题:

如图,keil5在编译时报许多这种的错误。image.png

原因:

原因是所选的芯片更启动文件和C/C++中的Preprocessor Symbols Define:中的容量配置宏定义有关(如STM32F10X_HD)

解决方法:

1.将C/C++中的宏定义去掉STM32F10X_HD
https://fanmimi.com/2020/469.html

2.选好芯片的启动文件。
STM32 大小容量芯片之间的差别及启动文件的选择

注解:我这里是keil5.30,keil5.1x的都会默认添加所选芯片的容量宏定义,如果用户自己定义了,就按用户定义的,当用户定义的和keil5默认的不一样就会两个都添加,所以就产生上面的冲突了,最根本原因还是自己所选用的芯片于容量大小不匹配。