STM32F103C8T6 在VSCode下使用Platform IO开发,基于库函数V3.5版本
首先安装Platform IO插件,怎么安装的教程有很多,可以自行百度,就不在重复了。
本篇文章将会以正点原子的跑马灯例程作为移植对象,基于CMSIS固件库3.5版本
将实现在VSCode上的程序编写与烧录,至于Debug...先留个坑吧
1.建立空白工程
在PIO的主页点击New Project

然后在弹出的对话框中输入实际的信息(可能对话框加载需要一定的时间,视网络情况而定)
Name: 就根据自己的需要来取了
Board: 可以直接输入MCU型号,然后根据自己实际选择后面带Generic就可以了,当然也有一些官方的板子是在支持列表的
Freamwork: 这里选择CMSIS,因为我们要做的是基于标准库来开发
Location: 这个是工程存放的目录,根据自己需求来就可以了
完成这些之后点击Finish,然后就是无尽的等待,第一次加载的话可以先去干其他活了,过一段时间再来看一看。

等待加载完成了之后可以在VSCode的工作区看到一个空白的工程

这时候可以试着点击一下编译,会提示编译失败,因为还没有任何东西在里面

2.将代码搬过来
本次使用的例程为 ALIENTEK MINISTM32 实验1跑马灯-库函数操作
本次工程名称为BLINK
1.原子工程中的CORE、HARDWARE、STM32F10x_FWLib、SYSTEM文件夹复制到BLINK/src文件夹目录下
然后进入CORE目录,将两个startup文件删除。
2.将原子工程中USER目录下的
main.c
stm32f10x.h
stm32f10x_conf.h
stm32f10x_it.c
stm32f10x_it.h
system_stm32f10x.c
system_stm32f10x.h
这几个文件复制到BLINK/src目录下
完成后整个工程目录如下

3.工程配置
PIO的工程配置文件为platformio.ini ,位于工程的根目录;关于详细的讲解在这里:https://docs.platformio.org/en/latest/projectconf.html
下面是本次实例工程使用的工程配置文件
[env:genericSTM32F103C8]
platform = ststm32
board = genericSTM32F103C8
framework = cmsis
upload_protocol = jlink ; 代码上传工具,
debug_tool = jlink ; debug工具
build_flags = ; Build options
-Isrc
-Isrc/CORE
-Isrc/HARDWARE/LED
-Isrc/STM32F10x_FWLib/inc
-Isrc/SYSTEM/delay
-Isrc/SYSTEM/sys
-Isrc/SYSTEM/usart
-D STM32F10X_MD ; 定义全局宏
-D USE_STDPERIPH_DRIVER
代码上传工具可以选择blackmagic,jlink,stlink;实际上我用的dap-link,配置文件中写的jlink也可以正常下载代码。
此处参考:https://www.cnblogs.com/Laggage/p/11263725.html
工程配置好了之后,可以点击左下角的√进行编译。
此时会提示core_cm3.o中有错误

打开core_cm3.c
如下修改736行和753行


此处参考:https://blog.csdn.net/winds211/article/details/86187402
再编译一次,发现还是有错,这次提示的错误位于sys.c中
打开sys.c 如下图所示修改代码

此处参考:https://www.cnblogs.com/zengsf/p/7170629.html
这时候再编译一下应该就可以通过了,如果是原子的板子的话直接点击 → 应该就可以看到对应得LED再闪烁了;
如果不是原子的板子,根据实际情况修改一下代码就OK了。
以后就可以愉快地在VSCode里面玩耍STM32了。
虽然在VSCode里面写代码非常爽,但是由于不知道会有那些隐藏的BUG,不建议直接使用这种方式进行实际生产上的开发!!!此教程仅供学习使用。
STM32F103C8T6 在VSCode下使用Platform IO开发,基于库函数V3.5版本的更多相关文章
- Vetur:VSCode下强大的Vue开发工具
Vue自从发布以来就一直受到前端开发人员的热爱,而除了一些本身优秀的特征之外,还有就是丰富的插件和工具的支持和更新.虽然现在的编辑器需要安装相应的plugins才能进行Vue组件化开发,但是越来越多优 ...
- vscode下搭建vue.js开发环境(基于最新的@Vue/cli 4.2.2)
2020-02-13. 网上的那些怎么安装vue环境的2.x就不要再看了,都过时了,现在去官网下载,按照他们的设置各种问题.接下来看下最新的安装方法. 前四步是一样的: 1.下载并安装vscode 2 ...
- 【转】搭建Mac OS X下cocos2d-x的Android开发环境
http://young40.github.io/blog/2013/02/23/setting-up-android-development-envirment-on-mac-os-x/ http: ...
- 使用IBM Blockchain Platform extension开发你的第一个fabric智能合约
文章目录 安装IBM Blockchain Platform extension for VS Code 创建一个智能合约项目 理解智能合约 打包智能合约 Local Fabric Ops 安装智能合 ...
- 【转】linux和windows下安装python集成开发环境及其python包
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
- mac10.9下eclipse的storm开发环境搭建
--------------------------------------- 博文作者:迦壹 博客地址:http://idoall.org/home.php?mod=space&uid=1& ...
- 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(三)
这几篇都是我原来首发在 segmentfault 上的地址:https://segmentfault.com/a/1190000005040834 突然想起来我这个博客冷落了好多年了,也该更新一下,呵 ...
- 使用socket.io client 开发时兼容IE低版本的办法
使用socket.io client 开发时兼容IE低版本的办法 socket.io提供了针对各个版本浏览器的‘socket’功能的封转:websocket,长连接,流,flash什么的.给你格式化下 ...
- Windows 7/8/10 系统下Laravel框架的开发环境安装及部署详解(Vagrant + Homestead)
注意! laravel/homestead box项目地址已经不再是原来的 https://atlas.hashicorp.com/laravel/boxes/homestead 而已经变更成 htt ...
随机推荐
- httprunner-2-linux下搭建hrun(下)
前言 前面我们说了linux下安装python3,hrun是需要依赖数据库,我们用docker进行安装mysql5.7让数据库能正常连接.安装mysql5.7请参考:https://www.cnblo ...
- 关于./xhost: unable to open display问题的解决
看了很多大同小异的帖子,都没能解决这个问题,以下是我的实测经验,注意第三步,很关键. 注:以下操作在确保vncserver.xdpyinfo服务正常的情况下进行 第一步:root登录,启动vncser ...
- ArcGIS Engine空间分析之缓冲区分析的实现
缓冲分析(BufferAnalysis)的结果是一个面状要素——即缓冲要素,点状要素.线状要素和面状要素,被缓冲分析功能处理过之后,它们的周围产生一个缓冲区域,该区域即新产生的面状要素. 在缓冲方向上 ...
- 【原创】从零开始搭建Electron+Vue+Webpack项目框架,一套代码,同时构建客户端、web端(二)
摘要:上篇文章说到了如何新建工程,并启动一个最简单的Electron应用.“跑起来”了Electron,那就接着把Vue“跑起来”吧.有一点需要说明的是,webpack是贯穿这个系列始终的,我也是本着 ...
- 前端技术之:JSON.stringfy详细说明
JSON.stringify() 语法JSON.stringify(value[, replacer[, space]]) value 被序列化为字符串的对象 replacer 根据类型不同,其行为也 ...
- opacity层叠问题
使用了position属性值为 absolute.relative 的层,将会比普通层更高层次.使用了小于1的opacity属性的层,也比普通层更高层次并且和指定 position 的层同层,但是不支 ...
- php经典设计模式和Trait类代码的复用
PHP经典设计模式 <?php /** * 单例模式 */ class Site { #定义属性 public $siteName; #定义本类的静态实例 protected static $i ...
- Git学习以及使用
最近学习了下git的使用,不得不感叹真的是甩了svn几条街 官网下载实在太慢,附加一个网站方便大家下载https://github.com/waylau/git-for-win 安装好后打开Git B ...
- windows上使用VsCode开发C/C++
使用VsCode+makefile开发C/C++ 1. 介绍 vscode作为现在越来越受欢迎的编辑器之一,因为可以使用插件让vscode支持几乎市面上所有的编程语言,由于笔者主要接触的是 C/C++ ...
- Numpy 中的聚合操作
# 导包 import numpy as np sum np.random.seed(10) L = np.random.random(100) sum(L) np.sum(L) min np.min ...