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 ...
随机推荐
- Kafka集群的安装和部署
一.Kafka的下载与解压 http://kafka.apache.org/downloads.html下载kafka_2.11-1.1.1.tgz.gz并解压到/home/jun下 [jun@mas ...
- 【MySQL】MySQL Workbench快捷键小结
执行当前行,ctrl+enter 执行整篇sql脚本: ctrl+shift+enter 格式化sql语句(美化sql语句):ctrl+b 自动补全:ctrl+space(似乎win10中这个快捷键失 ...
- app消息推送
Mui + 个推 实现消息推送 1.首先去个推 注册一个账号,新建一个消息推送应用 2.配置Mui配置文件 3.使用HBuilder 打包 app 4.然后在到个推后台 发送数据 后台Java代码(官 ...
- Linux下搭建.NetCore3.0环境及创建项目
================================================== ================================================= ...
- npm 学习笔记
一.介绍 1.是什么 npm 全称是 Node Package Manager,即 Node 包管理工具. 但是发展到后来,并不仅是适用于 node.js 的包. 所以现在看 node_modules ...
- 使用memset初始化int数组
memset()是一个来自于string库的函数,正规用法是初始化char类型的数组.因为char类型只占1个字节,memset按字节赋值后,会将char类型数组的所有元素变为你指定的值.但是4字节的 ...
- K近邻(k-Nearest Neighbor,KNN)算法,一种基于实例的学习方法
1. 基于实例的学习算法 0x1:数据挖掘的一些相关知识脉络 本文是一篇介绍K近邻数据挖掘算法的文章,而所谓数据挖掘,就是讨论如何在数据中寻找模式的一门学科. 其实人类的科学技术发展的历史,就一直伴随 ...
- 题解 【洛谷】AT654
题解 AT654 [役人[错题已隐藏]] 此题题面没搬过来, 会日语的dalao可以自行去ATCoder查看. 给出此题的JavaAC代码: public class Main { public st ...
- [考试反思]1109csp-s模拟测试106:撞词
(撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随 ...
- [考试反思]1026csp-s模拟测试89:不公
稍垃圾.因为T1没A. 赶巧前一段时间学了杜教筛,结果因为教练放错题. 然后考场上疯狂yy,最后水到了一个AC. 其实的确挺不公平的,不少人也没学呢. 如果只算T1和T3的分数的话,那70分就是个垃圾 ...