如何为 BluePill 编译 StdPeriph 库示例?

How to compile StdPeriph Library examples for BluePill?

我正在尝试用 GNU arm eabi gcc 编译示例:我从编译器那里得到了这个:

#error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"

然后我将 -DSTM32F10X_MD 添加到命令行,因为我相信,也许不正确的是 BluePill 是什么,然后我得到了这个:

#error "Please select first the STM32 EVAL board to be used (in stm32_eval.h)"

我搜索了一段时间才知道EVAL是指ST出售的评估板之一,用于测试他们的产品,但我当然没有,我有一个来自全球速卖通的便宜的蓝药丸。那么我现在的选择是什么?如何编译示例?

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

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 文件和 select 您的 MCU,这可能涉及取消注释 define 行.如果您无法弄清楚有哪些类型的选项,请尝试阅读您拥有的 MCU 的数据表,因为它详细说明了有关它的所有内容。

对于 EVAL 板,您可以 select 它们中的任何一个,因为它们仅别名(定义)简单的名称,例如 LED1。那样你就不能使用它们了。

但再次不要使用 STDPeriph 使用 HAL! Just use CubeMX 为您生成带有库的项目。它可能还比一些旧的 STDPeriph 评估板接头更好地支持 BluePill。