Stm32 如何为BluePill编译StdPeriph库示例?

Stm32 如何为BluePill编译StdPeriph库示例?,stm32,stm32f1,Stm32,Stm32f1,我试图用GNU arm eabi gcc编译这个示例:我从编译器那里得到了以下信息: #error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)" 然后我在命令行中添加了-DSTM32F10X\u MD,因为我认为,这可能是错误的,这就是BluePill,然后我得到了以下结果: #error "Please select

我试图用
GNU arm eabi gcc
编译这个示例:我从编译器那里得到了以下信息:

#error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"
然后我在命令行中添加了
-DSTM32F10X\u MD
,因为我认为,这可能是错误的,这就是BluePill,然后我得到了以下结果:

#error "Please select first the STM32 EVAL board to be used (in stm32_eval.h)"
我花了一段时间搜索才意识到EVAL意味着ST销售的一个评估板用于测试他们的产品,但我当然没有,我有一个来自Aliexpress的廉价bluepill。那么我现在的选择是什么?如何编译示例

更新:这是我完整的命令行

arm-none-eabi-gcc -DSTM32F10X_MD main.c -I/home/me/st/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x -I/home/me/st/Libraries/CMSIS/CM3/CoreSupport  -I/home/me/st/Utilities/STM32_EVAL -Wfatal-errors

第一:不要使用STDPeriph,它已被弃用。使用HAL

第二:它要求您在库本身中定义它编译的平台,以便它可以包含正确的依赖项。(如内存中的外围位置)

解决方案是读取STM芯片的型号(类似STM32F103C8T6),然后查看
stm32f10x.h
文件并选择您的MCU,这可能涉及取消注释
define
行。如果您不知道有哪些类型的选项,请尝试阅读MCU的数据表,因为它指定了有关MCU的所有内容

对于评估板,您可以选择其中任何一个,因为它们仅别名(定义)简单名称,如
LED1
。那你就不能用了

但同样不要使用STDPeriph,请使用!只需使用生成一个包含库的项目。它可能也比一些旧的STDPeriph评估板头更好地支持BluePill