如何为BluePill编译StdPeriph库示例



我正试图用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文件内部并选择MCU,这可能需要取消对define行的注释。如果你不知道有什么类型的选项,试着阅读MCU的数据表,因为它指定了它的所有内容。

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

但是再次不要使用性病使用HAL!只需使用CubeMX为您生成一个带有库的项目。它可能也比一些旧的STDPeriph eval板头更好地支持BluePill。

相关内容

  • 没有找到相关文章

最新更新