使用Visual Studio Code 开发 ESP8266
使用Visual Studio Code 开发 ESP8266
ESP8266+ArduinoIDE+VSCode开发ESP8266。
首先说明一下ESP8266并不是某一WiFi模块的名字(我以前是这么认为的),ESP8266是一块SOC的型号,任何基于ESP8266的WiFi模块都不过是ESP8266EX芯片加一块Flash芯片而已。比如ESP01、ESP12E、ESP12F等,它们的区别只不过是Flash存储空间不同或引出的引脚不同而已,ESP01的Flash最小,ESP12F比ESP12E多引出几个引脚(但是那几个引脚是和板上Flash连接的,不建议使用)。
ESP8266芯⽚内⽆可编程存储器,⽤户程序必须由外部 flash 存储。([ESP8266EX技术规格书](https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_cn.pdf))
一、在ArduinoIDE中添加ESP8266支持
无论如何,感谢Arduino. 虽然这个IDE并不怎么好用。
ESP8266 core for Arduino 项目地址:https://github.com/esp8266/Arduino
推荐去Arduino官网下一个免安装版的IDE,放在一个找得到的地方,一会用得着。
Arduino便携版配置教程,仔细看看:https://www.arduino.cc/en/Guide/PortableIDE,中心思想就是在解压后的目录下建一个"Portable"文件夹。设置好代理。如果不设置代理下面下载文件的时候可能会出错,到时候只能找其他办法解决,反正我是设置代理的,坚决不向那种不公平待遇妥协。
打开ArduinoIDE,找到“文件 > 首选项 > 设置 > 附件开发板管理网址”,在里面填入网址(这个网址可以在"ESP8266 core for Arduino"项目的自述文件中找到,我这里填的是https://arduino.esp8266.com/stable/package_esp8266com_index.json)。

- 然后打开“工具 > 开发板 > 开发板管理器”,等待下面的“正在下载平台索引”走完后就可以在里面搜索到ESP8266了,选择默认版本安装就行了。这里提到的“正在下载平台索引”和安装ESP8266的过程可能会很慢,如果连不上互联网的话也可能会失败,自己想办法吧。

- 安装完后就可以在“开发板”选项中找到ESP8266了,建议选择“Generic ESP8266 Module”。通用的就行,反正都是ESP8266没甚区别。在选择完开发板后再打开“工具”选项卡后就会发现里面多了一些东西,在这里可以设置ESP8266的程序下载速度、CPU工作频率、Flash大小等参数,相当方便,前几天我还在想万一我哪天给模块换了个大点的Flash在IDE里怎么设置,直到我发现了这个。

- 之后在示例里打开一个眨灯的程序,编译没有错误后把串口号选对了就可以给ESP8266下载程序看看效果了。下载的时候需要注意的是需要在ESP8266上电的时候把GPIO0拉低,下载完后复位执行(当然如果是支持自动下载的如NodeMCU这种板子就完全不用做任何操作了)。

二、转战 Visual Studio Code
注意:新版的VSCode(1.43)有BUG,在使用Arduino时无法选择串口,点击选择端口无反应,手动在配置文件中指定端口号也没用。网上有人遇到同样问题:https://github.com/microsoft/vscode-arduino/issues/816
如果截止到你安装时候新版本依然存在问题可以换旧版本的VSCode;也可以做一个便携版的旧版本VSCode,这样可以不影响当前配置。(我用的是1.36.1)
参考1:https://code.visualstudio.com/docs/editor/portable
参考2:https://github.com/DIOLeo/VSCode-Portable-WithMinGWw64
下载1:https://code.visualstudio.com/updates/v1_43
下载2:https://portapps.io/app/vscode-portable/ (推荐)
vscode-arduino 项目地址:https://github.com/microsoft/vscode-arduino
Arduino那个IDE实在是用不习惯,不过好在我们有VSCode. 知道VSCode好用,但是由于STM32用VSCode开发有点麻烦,所以也没怎么用过,不过现在有了开发ESP8266的需求,希望能好好玩玩VSCode.
下载VSCode. 这个就没啥好说的了,直接去微软官网下载。千万别百度!千万别百度!千万别百度!
在VScode中安装Android插件。打开VSCode的拓展中心搜索“Arduino”,找到那个Microsoft出品的Arduino拓展装上就行了,安装完成后重载VSCode启用。
打开VSCode的配置文件(快捷键“CTRL+,”,该文件在Win中的路径为"%APPDATA%\Code\User\settings.json"),搜索到“Arduino”相关的配置。将上前面下载的并配置好的ArduinoIDE的路径添加到“Arduino:Path”中,配置会自动保存

- 设置好Arduino插件后就可以在VSCode中编译和下载Arduino代码了。可以直接将Arduino的.ino文件或工作目录拖到VSCode中打开,也可以在VSCoode中新建.ino格式的文件。进文件后按[F1]打开命令模式输入"Arduino"可以查看Arduino的相关命令,比如板子配置、选择端口、编译(Ctrl+Alt+R)和上传(Ctrl+Alt+U)程序等,当然其中大部分选项在VScode的右下角也能找到。

- 至此就完成了 VSCode-arduino 的基本配置。只要打开一个项目设置好板子型号和其他信息、连接上串口既可以正常开发了。
三、补充
无论在VSCode中打开.ino文件或是创建.ino文件,一般都会在工程文件的同级目录生成一个".vscode"的隐藏文件夹,里边包含我们需要用到和修改的配置。

3.1 编译过程中输出窗口有乱码?
- 打开ArduinoIDE并将其设置为英文可以解决这个问题。
3.2 include path 设置
- 当第一次在VSCode中打开一个有内容的.ino项目时一般会提示很多形如“xxx未定义”的错误(前提是安装了C/C++插件),对于这种错误(实际编译时不会出错)在主文件中包含include几个.h可以解决,添加完include后先编译一下,如果仍有问题视具体情况Google吧,我把我开发ESP8266用到的几个文件列举一下。如果.h文件找不到可以在"c_cpp_properties.json"中添加相应的"includePath",粘贴路径后记得把单斜杠换成双斜杠或反斜杠。
//包含的文件
#include <Arduino.h> //这个就不解释了
#include <HardwareSerial.h> //如果没有这个会提示"Serial"未定义
//引用的路径
"ArduinoIDE路径\\1.8.12\\tools\\**",
"ArduinoIDE路径\\1.8.12\\hardware\\arduino\\avr\\**",
"ArduinoIDE路径\\1.8.12\\Portable\\packages\\esp8266\\hardware\\esp8266\\2.6.3\\cores\\esp8266",
"ArduinoIDE路径\\1.8.12\\Portable\\packages\\esp8266\\tools\\**",
"ArduinoIDE路径\\1.8.12\\Portable\\packages\\esp8266\\hardware\\esp8266\\2.6.3\\libraries\\ESP8266WiFi\\src",
"ArduinoIDE路径\\1.8.12\\Portable\\packages\\esp8266\\hardware\\esp8266\\2.6.3\\**"
3.3 输出路径配置
- 在"arduino.json"中添加"output"可以有效提高代码的二次编译速度。Arduino要求输出路径不能是工作空间本身或在工作空间的子文件夹中,因此设置在与工作空间同级的目录下就行了,比如
json "output": "../build"
3.4 输出滚屏
- 如果在编译或下载代码是输出窗口不能随输出内容自动向上滚动绝对是会令人抓狂的,因为你需要把鼠标放到输出窗口上不停的滑动滚轮才能看到实时输出(事实上ArduinoIDE确实存在这种现象)。在VSCode里想要切换输出滚动很简单,只需点击输出窗口右上角的小锁图标或按快捷键[Ctrl+end].

3.5 推荐的插件(拓展)
- Arduino:万恶之源,下载的时候选Microsoft出产的那个;
- C/C++:静态语法检测;
- Bracket Pair Colorizer 2:五颜六色的括号,很漂亮的;
- background:背景图片,骚骚的(●ˇ∀ˇ●);
- Fix VSCode Checksums:由于上面那个添加背景图片的插件会修改VSCode核心文件因此会提>示“Code 安装似乎损坏”,安装这个插件并执行"Fix Checksums : Apply"命令可以解决那个问题,不过仍有可能在VSCode的标题栏中提示[不受支持],不过没什么影响。([不受支持]是说VSCode的CSS被改了破坏了完整性所以VSCode不受支持);
- Chinese (Simplified) Language Pack for Visual Studio Code:为你的VSCode添加中文支持。
[已知问题]
- 在ArduinoIDE打开文件时要求".ino"文件的文件名和其所在目录的名称必须相同,在VSCode中不这样做虽没发现什么问题,但不知道会不会有什么潜在隐患,所以还是建议保持它们一致。

- 在(只针对ESP01测试过)在板子配置中选择"Generic ESP8266 Module"后默认的上传波特率时115200,如果把其调整为高于115200的话(如230400)编译会出错,调低(如57600)则没问题,调整CPU频率和Flash大小也没问题。(这绝对不是硬件问题,因为在ArduinoIDE中调到头都能正常编译下载)
(如果你的代码中初始化了串口,把它的波特率调整为与下载波特率相同好像能解决这个问题。)

- ".vscode"中的配置文件根据不同情况肯定要适当修改,留意。
- 关于编译过程中出现的"fatal: not a git repository (or any of the parent directories): .git",其实这个并没什么影响。不止在VSCode中在原版的Arduino中也有这个问题,这问题是在安装ESP8266支持后出现的。要解决也不是没办法需要一个".git"目录,用"git clone"把Arduino的仓库克隆下来然后把".git"文件夹复制到Arduino安装目录下就行了,但是".git"目录太大了所以后来我又删了,反正没什么影响。
(第二天问题明明奇妙的消失了,也许是服务端网络问题。)
使用Visual Studio Code 开发 ESP8266的更多相关文章
- 打造TypeScript的Visual Studio Code开发环境
打造TypeScript的Visual Studio Code开发环境 本文转自:https://zhuanlan.zhihu.com/p/21611724 作者: 2gua TypeScript是由 ...
- [Tool] 使用Visual Studio Code开发TypeScript
[Tool] 使用Visual Studio Code开发TypeScript 注意 依照本篇操作步骤实作,就可以在「Windows」.「OS X」操作系统上,使用Visual Studio Code ...
- Mac上使用Visual Studio Code开发/调试.NET Core代码
Mac上使用Visual Studio Code开发/调试.NET Core代码 .Net Core 1.0终于发布了,Core的一大卖点就是跨平台.这个跨平台不只是跨平台运行,而且可以跨平台开发.今 ...
- Visual Studio Code开发TypeScript
[Tool] 使用Visual Studio Code开发TypeScript [Tool] 使用Visual Studio Code开发TypeScript 注意 依照本篇操作步骤实作,就可以在 ...
- 【实验手册】使用Visual Studio Code 开发.NET Core应用程序
.NET Core with Visual Studio Code 目录 概述... 2 先决条件... 2 练习1: 安装和配置.NET Core以及Visual Studio Code 扩展... ...
- 使用Visual Studio Code开发.NET Core看这篇就够了
作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9926078.html 在本文中,我将带着大家一步一步的通过图文的形式来演示如何在Visual Studi ...
- 使用Visual Studio Code开发(编译、调试)C++程序
总体安装步骤 安装VSC(Visual Studio Code). 安装C/C++编译器(如MinGW-w64),然后配置好环境变量.//完成这步即可在VSC的终端(命令行)下编译.运行.cpp程序了 ...
- 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(一)-- 起步
本文记录了在Windows环境下安装Visual Studio Code开发工具..Net Core 1.0 SDK和开发一个简单的Web-Demo网站的全过程. 一.安装Visual Studio ...
- 使用Visual Studio Code开发Arduino
首发于MSPrecious成长荟 https://zhuanlan.zhihu.com/p/30868224 使用Visual Studio Code开发Arduino 1.下载安装 VS Code ...
随机推荐
- 嵌入式linux启动过程详解
启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬 ...
- iOS开发之蜂窝布局—Swift
前言 最近项目中用到了类似蜂窝的六边形布局,在这里分享出来抛砖引玉,供大家参考学习.本文提供了2种思路实现效果,第一种方式使用UICollectionView实现,第二种方式使用UIScrollVie ...
- linux下安装redis-6.0.6、配置redis远程连接
官网下载安装包redis-6.0.6.tar.gz https://redis.io/ 上传到服务器之后使用tar -zxvf进行解压,解压后如下: 进入解压的文件之后我们可以看到他的配置文件(配置文 ...
- 计算文件的MD5值和sha256值
1.计算文件的MD5值. 1)linux系统计算 MD5值:md5sum+文件名 sha256值:sha256su+文件名 2)windows系统计算 MD5值:利用Notepad++工具计算 sha ...
- asp.net MVC 数据的验证
join 操作
- .net core signalR 全局异常处理
Hub的异常拦截 { } { } *:first-child { } *:last-child { } { } { } { } { } { } { } { } { } { } h6:first-chi ...
- Spring第一课:配置文件及IOC引入(一)
Spring最核心的特点就是控制反转:(IOC)和面向切面(AOP) 首先作为一个Spring的项目需要导入的四个核心包,一个依赖: 四核心:core.context.beans.expression ...
- ES6扩展——函数扩展之剩余函数
1.结合扩展运算符 //剩余参数是做聚合的,扩展运算符是做展开的 function sum(...args){ console.log(arguments); console.log(argument ...
- ubuntu开机自启设置 Ubuntu16.04下测试OK
在~/.config/autostart/目录下,添加xxx.desktop文件,内容如下: [Desktop Entry] Type=Application Name=start apps NoDi ...
- Vue 2.0 与 Vue 3.0 响应式原理比较
Vue 2.0 的响应式是基于Object.defineProperty实现的 当你把一个普通的 JavaScript 对象传入 Vue 实例作为 data 选项,Vue 将遍历此对象所有的 prop ...