[其他ST产品] 在PlatformIO使用CMSIS标准库开发STM32(解决冲突)

[复制链接]
1111|6
 楼主| 家有两宝呀 发表于 2023-1-31 11:16 | 显示全部楼层 |阅读模式
在PlatformIO使用CMSIS标准库开发STM32(解决冲突)
博主也是刚开始学stm32,觉得keil不好看,想用更加熟悉的VS Code来开发STM32。我学的教材用的是标准库,可是网上大部分教程都是针对HAL库的。终于找到一篇教程之后,发现复制进去的库在链接时会和PlatformIO自带的库冲突。

这是我参考的文章:


STM32F103 在VSCode下使用Platform IO 基于CMSIS标准库函数开发 - Zennn - 博客园 (cnblogs.com)
3847263d887f25fe31.png

————————————————
版权声明:本文为CSDN博主「帆登」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Simgo/article/details/121285518

 楼主| 家有两宝呀 发表于 2023-1-31 11:17 | 显示全部楼层
研究一番之后,是因为system_stm32f10x.c和PlatformIO自带的system_stm32f1xx.c冲突了,解决方法如下:

把这几个文件放进include目录,作为全局头文件。如果不想分类的话,直接放进src目录也行。
  1. stm32f10x_conf.h
  2. stm32f10x_it.h
  3. stm32f10x.h
  4. system_stm32f10x.h


然后把stm32f10x_it.c文件、FWlib目录放进src目录。、
 楼主| 家有两宝呀 发表于 2023-1-31 11:29 | 显示全部楼层
具体结构如下:
1435463d88b2a7666a.png
 楼主| 家有两宝呀 发表于 2023-1-31 11:37 | 显示全部楼层
然后修改platformio.ini文件:
  1. [env:genericSTM32F103VE]
  2. platform = ststm32
  3. board = genericSTM32F103VE      ; 板块
  4. framework = cmsis               ; 标准库
  5. upload_protocol = stlink        ; 上传工具
  6. debug_tool  = stlink            ; 调试工具
  7. build_flags =                   ; Build 选项
  8.     -Isrc/FWlib/inc                                ; 添加搜索,目录
  9.     -D STM32F10X_MD             ; 设备类型
  10.     -D USE_STDPERIPH_DRIVER
 楼主| 家有两宝呀 发表于 2023-1-31 11:38 | 显示全部楼层
如果需要使用其他容量的芯片,可以参考下面修改设备类型:
  1. STM32F10X_LD:                 STM32 Low density devices
  2. STM32F10X_LD_VL:         STM32 Low density Value Line devices
  3. STM32F10X_MD:                 STM32 Medium density devices
  4. STM32F10X_MD_VL:         STM32 Medium density Value Line devices
  5. STM32F10X_HD:                 STM32 High density devices
  6. STM32F10X_HD_VL:         STM32 High density value line devices
  7. STM32F10X_XL:                 STM32 XL-density devices
  8. STM32F10X_CL:                 STM32 Connectivity line devices
 楼主| 家有两宝呀 发表于 2023-1-31 11:46 | 显示全部楼层
注意,不需要复制core_cm3这些文件到工程目录,也省掉修改736行和753行这些操作。一般到这里就可以正常编译了,如果想调试,必须在platformio.ini文件填写调试工具。
 楼主| 家有两宝呀 发表于 2023-1-31 11:46 | 显示全部楼层
虽然VS Code很好看,但是不建议在实际生产环境中使用,因为不知道有没有隐藏的bug,本教程仅供学习使用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

585

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部