首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为StdPeriph编译BluePill库示例?

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

Stack Overflow用户
提问于 2020-10-29 06:55:04
回答 1查看 116关注 0票数 0

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

代码语言:javascript
复制
#error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"

然后,我将-DSTM32F10X_MD添加到命令行中,因为我认为,这可能是错误的,这就是BluePill,然后我得到了以下内容:

代码语言:javascript
复制
#error "Please select first the STM32 EVAL board to be used (in stm32_eval.h)"

我花了一段时间才意识到,EVAL意味着ST的一个评估委员会出售他们的产品,但我当然没有,我有一个廉价的蓝色从支付宝。那我现在有什么选择?如何编译这些示例?

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

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-29 10:17:29

首先:不要使用STDPeriph,它是不推荐的。使用HAL。

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

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

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

但是,同样不要使用STDPeriph,使用硬件!只需使用CubeMX为您生成一个带有库的项目。它可能也更好地支持BluePill比一些旧的STDPeriph标准板头。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64586296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档