如何为 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。
我正在尝试用 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。