PlatformIO简介

PlatformIO是开源的物联网开发生态系统。提供跨平台的代码构建器、集成开发环境(IDE),兼容 Arduino,ESP8266和mbed等
支持在Windows、Linux、macOS上使用预编译好的工具链,调试器和框架进行开发。它支持超过350个的嵌入式设备,超过20个的开发平台,超过10个的框架。
Atom
PlatfromIO IDE是基于Atom的新一代集成开发环境。提供了C/C++的代码智能提示,程序库管理,内置命令行等功能。
Visual Studio Code
PlatfromIO for Visual Stuido Code提供了构建,部署,设备监视器,程序库搜索等主要功能。为超过350个的嵌入式设备提供了良好的开发环境。
Sublime Text
Deviot是一个基于Sublime Text插件,基于PlatformIO为许多嵌入式设备的开发提供支持。

环境:

macOS Mojave

STM32F103ZE

VSCode

PlatformIO IDE

安装步骤

首先要安装VScode(相信大家都使用过)
在vscode 中安装插件PlatformIO IDE
安装完成后重启vscode 左下角会有一个小房子,点击它进入插件的界面
介绍一下主要的模块信息:

1、Home标签页

  1. Show at startup 的复选框,勾上后,每次启动vs code就会启动这个主页;
  2. Quick Access:
    • New Project:新建工程;
    • Import Arduino Project:导入电脑中已经存在的Arduino工程;
    • Open Project:打开已经存在的Platformio工程;
    • Project Examples:打开本机已经安装的单片机平台的例程工程;
  3. Recent News:显示最新 Platformio 信息;
  4. Recent Projects: 显示最近新建的工程

2、Libraries标签页

这是一个管理库的标签页,可以再这里查找相关的库的信息,查看方法、使用例程等。可以安装、管理和更新第三方库。

3、Boards标签页

这里显示的都是PlatformIO 支持的开发板信息,主要信息如下:
Name:开发板名称
Platorm:对应的平台
Frameworks:支持的开发框架
MCU:开发板MCU型号
FRQ:开发板工作主频(Mhz)
ROM:开发板存储
RAM:开发板的内存
Extra:其他的操作

4、Platforms标签页

用来管理对支持的平台

5、Devices标签页

显示电脑连接的设备信息。
 

工具栏信息

  1. 编译按钮(Build):勾号,点击后会编译当前的工程
  2. 烧写按钮(Upload):向右的箭头,将程序烧写到开发板
  3. 远程烧写按钮(Upload to remote device):云朵,远程烧写程序
  4. 清理按钮(Clean):垃圾桶,清理编译过程生成的文件
  5. 测试按钮(Test):烧瓶,测试工程,免费版的Platformio受限不能用;
  6. 运行任务按钮(Run task...):本子,会跳出操作菜单,包含编译、烧写、调试等操作;
  7. 串口监视器按钮(Serial monitor):插头,点击后会启动命令行的串口监视助手;
  8. 终端按钮(New Terminal):命令行,新建一个终端窗口;
 


先来尝试一个使用吧,更多的功能,在实际的使用过程中再进行学习,
每次我的电脑点击新建工程后都会无法点击输入框,所以只好退出后重新进入
 
感觉还挺顺利,开始建立第一个工程,嗯哼,填好工程名,选好相关的板子,选择Framework(暂不知道有什么区别,先选arduino吧),点击finish,听说第一次创建工程的时候花的时间要就一些。
半个小时后。。。一个小时后。。。凌晨一点了,开着电脑让他建吧,先睡觉。。。。
早上起来,what???还是please wait… 
换个网络,连上外网,再重试一次,居然一分钟内就建好了,所以这又是为啥呢,我昨晚也试过连接了外网的。
是因为网络连接不畅,没有连接外网?还是需要将xcode更新到最新版本,并下载相关组件,亦或是clang没有更新;原因不得而知,反正在xcode,clang更新完了之后连上外网,很快就建好了。(我猜想是网络质量不好造成的,若是有读者知道原因还请告诉我一下,先在此谢过)


上代码测试吧,在src文件夹下的main.cpp中加入如下代码,编译下载,查看结果。
 1 #include <Arduino.h>
2
3 #define LED PB5 //这是等在板子上的引脚信息
4
5 void setup() {
6   // put your setup code here, to run once:
7   pinMode(LED,OUTPUT);
8 }
9
10 void loop() {
11   // put your main code here, to run repeatedly:
12   digitalWrite(LED, HIGH);
13   delay(1000);
14   digitalWrite(LED, LOW);
15   delay(1000);
16 }
当然想要成功下载还需要一个些配置信息,platformio.ini文件里添加如下代码:
1 [env:genericSTM32F103ZE]
2 platform = ststm32
3 board = genericSTM32F103ZE
4 framework = arduino
5 upload_protocol = jlink
至此,应该已经成功的实现了在Mac上进行嵌入式开发,接下来就是更深一步的去学习使用了。
 

Mac下搭建基于PlatformIO的嵌入式开发环境(STM32开发)的更多相关文章

  1. mac下搭建基于vue-cli 3.0的Element UI 项目

    1.安装yarn管理工具(包含node.js); 2.安装全局vue-cli全家桶: yarn global add @vue/cli 3.创建.测试一个vue-cli项目: vue create a ...

  2. 小白秒懂的Windows下搭建基于pytorch的深度学习环境

    配置环境总体思路 1.依据python版本选择对应Anaconda版本: 2.依据显卡驱动版本选择对应的CUDA版本: 3.依据CUDA版本选择对应的cudnn和pytorch版本. 一.Anacon ...

  3. mac下搭建cordova开发环境

    Apache Cordova 原名叫PhoneGap.是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台.PhoneGap最初由Nitobi开发,2011年 ...

  4. Mac下搭建php开发环境教程

    方案一:原生安装 这篇文章主要介绍了Mac下搭建php开发环境教程,Mac OS X 内置了Apache 和 PHP,这样使用起来非常方便.本文以Mac OS X 10.6.3为例,需要的朋友可以参考 ...

  5. mac 下搭建 Android 开发环境

    因工作需要,要在mac 下搭建 Android 开发环境.谷歌.度娘了好久,没有找个一个完整又系统的方法,很是苦恼.最终,皇天不负有心人,找到了下面这篇文档,结合亲身体验,特此记录.也为有这方面需求的 ...

  6. 在mac下搭建java开发环境

    刚刚从windows系统转到使用mac系统.感觉不是特别熟悉,须要一定的适应时间. 以下简介一下mac下搭建主要的java开发环境. 1.安装jdk 安装jdk1.7后,发现不须要进行环境变量配置,直 ...

  7. Mac下搭建Cocos2d-x-3.2的开发环境

    配置:OS X 10.9.4 + Xcode 6.0 + Cocos2d-x-3.2 摘要:本文目标为在Xcode成功运行HelloWorld程序. 一.下载必要项 1.从官网下载Cocos2d-x- ...

  8. 在MAC上搭建cordova3.4.0的IOS和android开发环境

    Hello,大家好,今天给大家说说在mac上搭建cordova3.4.0的iOS和Android开发环境,首先下载cordova,地址:https://cordova.apache.org/#down ...

  9. Mac 上搭建基于 Hexo + GitHub 个人博客

    环境配置 本人电脑系统:macOS Node.js 生成静态页面.安装Node.js Git 用于将本地 Hexo 内容提交到 Github.Xcode自带Git(前提:macOS已经安装了Xcode ...

随机推荐

  1. Elaticsearch(一)--基础原理及用法

    一.基础概念 1.Elasticsearch简介 Lucene是Java语言编写的全文(全部的文本内容进行分析,建立索引,使之可以被搜索)检索引擎工具包(全文检索引擎的架构),用于处理纯文本的数据,提 ...

  2. SpringBoot Logback 日志配置

    目录 前言 日志格式 日志输出 日志轮替 日志级别 日志分组 小结 前言 之前使用 SpringBoot 的时候,总是习惯于将日志框架切换为 Log4j2,可能是觉得比较靠谱,也可能年龄大了比较排斥新 ...

  3. MySQL学习(一)——创建新用户、数据库、授权

    一.创建用户 1.登录mysql mysql -u root -p 2.创建本地用户>/font> use mysql; //选择mysql数据库 create user 'test'@' ...

  4. Android Loader异步装载

    一.Loader简介: (一).Loader的概念: 装载器从android3.0开始引进.它使得在activity或fragment中异步加载数据变得简单. 当成批显示数据的时候,为了使用户体验更好 ...

  5. dom4j解析XML学习

    原理:把dom与SAX进行了封装 优点:JDOM的一个智能分支.扩充了其灵活性增加了一些额外的功能. package com.dom4j.xml; import java.io.FileNotFoun ...

  6. 实现nfs持久挂载+autofs自动挂载

    实验环境: 两台主机 node4:192.168.37.44 NFS服务器 node2:192.168.37.22 客户端 在nfs服务器,先安装nfs和rpcbind [root@node4 fen ...

  7. maven管理本地jar包

    maven作为包管理工具,好处不必多说.但是有些情况,比如需要引入第三方包,如快递鸟,支付宝,微信等jar包(当然有可能直接提供maven依赖),如果直接下载到本地之后,怎么整合到自己的maven工程 ...

  8. Java线程安全性-原子性工具对比

    synchronized 不可中断锁,适合竞争不激烈的场景,可读性好,竞争激烈时性能下降很快 Lock 可中断锁,多样化同步,竞争激烈时能维持常态 Atomic 竞争激烈时能维持常态,比Lock性能还 ...

  9. 通过js禁用浏览器的回退事件

    js代码: <script> history.pushState(null, null, document.URL); window.addEventListener('popstate' ...

  10. MySQL记录锁、间隙锁、临键锁小案例演示

    生成间隙(gap)锁.临键(next-key)锁的前提条件 是在 RR 隔离级别下. 有关Mysql记录锁.间隙(gap)锁.临键锁(next-key)锁的一些理论知识之前有写过,详细内容可以看这篇文 ...