首先安装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版本的更多相关文章

  1. Vetur:VSCode下强大的Vue开发工具

    Vue自从发布以来就一直受到前端开发人员的热爱,而除了一些本身优秀的特征之外,还有就是丰富的插件和工具的支持和更新.虽然现在的编辑器需要安装相应的plugins才能进行Vue组件化开发,但是越来越多优 ...

  2. vscode下搭建vue.js开发环境(基于最新的@Vue/cli 4.2.2)

    2020-02-13. 网上的那些怎么安装vue环境的2.x就不要再看了,都过时了,现在去官网下载,按照他们的设置各种问题.接下来看下最新的安装方法. 前四步是一样的: 1.下载并安装vscode 2 ...

  3. 【转】搭建Mac OS X下cocos2d-x的Android开发环境

    http://young40.github.io/blog/2013/02/23/setting-up-android-development-envirment-on-mac-os-x/ http: ...

  4. 使用IBM Blockchain Platform extension开发你的第一个fabric智能合约

    文章目录 安装IBM Blockchain Platform extension for VS Code 创建一个智能合约项目 理解智能合约 打包智能合约 Local Fabric Ops 安装智能合 ...

  5. 【转】linux和windows下安装python集成开发环境及其python包

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

  6. mac10.9下eclipse的storm开发环境搭建

    --------------------------------------- 博文作者:迦壹 博客地址:http://idoall.org/home.php?mod=space&uid=1& ...

  7. 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(三)

    这几篇都是我原来首发在 segmentfault 上的地址:https://segmentfault.com/a/1190000005040834 突然想起来我这个博客冷落了好多年了,也该更新一下,呵 ...

  8. 使用socket.io client 开发时兼容IE低版本的办法

    使用socket.io client 开发时兼容IE低版本的办法 socket.io提供了针对各个版本浏览器的‘socket’功能的封转:websocket,长连接,流,flash什么的.给你格式化下 ...

  9. Windows 7/8/10 系统下Laravel框架的开发环境安装及部署详解(Vagrant + Homestead)

    注意! laravel/homestead box项目地址已经不再是原来的 https://atlas.hashicorp.com/laravel/boxes/homestead 而已经变更成 htt ...

随机推荐

  1. ulua、tolua原理解析

    在聊ulua.tolua之前,我们先来看看Unity热更新相关知识. 什么是热更新 举例来说: 游戏上线后,玩家下载第一个版本(70M左右或者更大),在运营的过程中,如果需要更换UI显示,或者修改游戏 ...

  2. MUI错误信息:系统已经存在较高版本,些安装包无法安装。

    MUI 混合开发APP 版本更新问题. 错误信息: 解决方法: manifest.json->version->code 这个值需要累加,version->name 是用于显示的,这 ...

  3. c#通过libreOffice实现 office文件转pdf文件

    一.安装libreOffice 点击官网下载libreOffice 二.创建一个新的项目LibreOffice 创建一个新的项目,方便后面调用 添加下面代码 public class OfficeCo ...

  4. Exceptionless—本地部署

    参考:https://blog.csdn.net/shiyaru1314/article/details/76176236 自己采坑: ES 1.7.5版本不好使.使用最新版本6.X以上版本也不行 用 ...

  5. [考试反思]1029csp-s模拟测试92:弱智

    我只能这么评价我自己. 看这个提交时间...我没话可说... T1半个世界都A了还是切不掉.又一次挂细节. T2不会证明的乱搞(虽然可以证明)A了没什么可说的算是水过. T3之前水过的题(打的次正解) ...

  6. CSPS模拟 62

    婚礼现场系列 T1 $gragh$ 为了方便把边的贡献下放到点,跑一个生成树作为划分依据. T2 $permutation$ 由于在本题中,构造的变换方法保证只能邻项交换 所以如果位置串字典序变小,权 ...

  7. windows下离线安装mysql8.0服务(支持多个安装,端口不同就可以)

      1.官网下载 mysql文件.官网下载链接:https://dev.mysql.com/downloads/mysql/ 选择mysql下载的系统版本. 此处可以下载MSI安装包,图简单的朋友可以 ...

  8. ElasticSearch(四):基本搜索

    ElasticSearch(四):基本搜索 学习课程链接<Elasticsearch核心技术与实战> URI Search 使用HTTP的GET方法,在URL中使用查询参数进行查询. GE ...

  9. python入门之五种字典创建方法

    a = dict(one = 1, tow = 2, three = 3)b = {'one' :1,'tow' :2 , 'three' :3}c = dict (zip(['one', 'tow' ...

  10. 随机点名小程序--- -JAVA版本

    话不多少,直接上代码 一个能够直接运行的随机点名的小程序,一个界面化的小程序.望广大网友多多支持! 1.创建一个随机点名的类 public class ProcessRandomName { JFra ...