原因主要有三点:启动文件,头文件定义,驱动选择不一致。各项如下:
1、启动文件
2、头文件定义
3、驱动选择
会导致报错的情况案例:
1、启动文件为startup_stm32f10x_md.s,C/C++的Define为 STM32F10X_HD,会报错。因为头文件定义与启动文件不一致
2、启动文件为startup_stm32f10x_md.s,C/C++的Define为 STM32F10X_MD,驱动(Device)选择STM32F103ZE,会报错。因为STM32F103ZE系列芯片属于大容量芯片,而MD属于中容量芯片驱动文件。