使用PlatformIO开发STM32时如何解决链接报错
项目场景:
多数PlatformIO开发STM32都是基于HAL库的版本,一些基于标准库的版本教程也不够完整且会出现链接报错的问题。
移植教程
platformio.ini配置
[env:genericSTM32F103R8]
platform = ststm32
board = genericSTM32F103R8
framework = cmsis
upload_protocol = stlink
debug_tool = stlink
build_flags =
-D STM32F10X_MD
-D USE_STDPERIPH_DRIVER
这里我使用的板子是F103R8T6,可以根据自己的实际情况进行修改。
移植过程
1.将正点原子的模板下的HARDWARE和SYSTEM里的文件夹移到PIO工程目录的lib文件夹。
2.将USER里的这几个文件放入sys文件夹,注意不要把system_stm32f10x.c文件放进去,否则会与PIO自带的库文件冲突导致出现链接错误。
stm32f10x_conf.h
stm32f10x_it.h
stm32f10x_it.c
stm32f10x.h
system_stm32f10x.h
3.将FWLib下的inc和src里的所有文件移到FWLib文件夹下,删除空的inc和src,然后将FWLib文件夹放入PIO工程目录的lib文件夹。
最终的目录结构是这样的

运行测试:

参考链接:
在PlatformIO使用标准库开发STM32(解决冲突)_platformio stm32标准库-CSDN博客
作者:StarSphere