Vscode作为一款优秀的代码编辑器,具有极为方便快捷的代码辅助与拓展功能,使用熟练后开发效率大大提高,且作为典型的IDE,不需要花费大量的时间成本即可上手,Vscode结合各种插件,可以搭建出大部分的开发环境,在嵌入式领域,Vscode也是一大神器,本人曾尝试从交叉编译工具开始搭建STM32的IDE,在Ubuntu上实践成功,编译速度相比keil成倍提升,缺点是需要自己写makefile,这就导致一些特殊的lib不好引入,实为一大遗憾,且由于某些尚未解决的问题,没能搞定OpenOCD,用CubeMX+Vscode+CubeProgrammer,勉强搭了一个半残废的环境,胜在稳定,搭建的方法也是网上东拼西凑找的,有时间做个总结。换到Windows,原先的方法反而行不通了,也罢,Ubuntu没有其他可选,Windows还不大把?尽管如此,Vscode的方便还是驱动着我找到了这个强大的插件——PlatformIO,选择它的一大理由,就是它的支持更新速度,对于主流的芯片,能很快适配,经测试,STM32整体开发非常流畅,可以说相当不错。

但,这不是今天我要讲的,今天要讲的Vscode+PlatformIO+esp-idf+esp32的环境搭建,其实也相当简单,在PlatformIO上新建工程,选择esp32的broad,framework选的esp-idf,经过漫长的第一次创建的配置,把测试代码拷到main里,build,upload,一气呵成。。。才怪,中间的坑多的很。。。首先测试代码是乐鑫开源的,这就要吐槽下乐鑫的用户支持,代码开源在GitHub上,众所周知,GitHub是时而存在,时而不存在的网站,我们称之为薛定谔的GitHub,把代码开源在一个不存在的网站,这不是存心不让用户下载吗(怒),好在Gitee有人搬运,嗯,忍了。除了PaltformIO外,乐鑫还推出了自己的Vscode插件,称为Espressif IDF,说实话,IDF这个名字起的不错,让人联想到某先进三代机,题外话,Espressif IDF的安装依赖esp-idf tools,乐鑫的开源下载工具,然后下载源是GitHub,经历了漫长的龟速下载以后,宣告失败,不知道是我的问题还是本身支持一般,当然还有一个办法是解决GitHub的网速问题,具体就不展开了。

还好,我们有PlatformIO,把测试代码拷到main里,build,upload,一气呵成。。。并没有,我这的话出现最大的问题是upload的时候串口有问题,当然这是我电脑驱动的问题,花费了很多时间排查出来了,先说解决方法,去官网下驱动,进设备管理器查看CP210x的驱动分配到COM号,比如是COM3,然后你发现upload后返回错误serial.serialutil.serialexception: could not open port 'com3',把驱动卸载了,重装,直到COM号不是COM3,比如COM8,再试一次就可以了,这是估计我电脑过去乱连蓝牙模块导致的,抛开其他问题不谈,esp32的环境可选的有很多,还是不错的,把这一切搞定,就可以愉快地开发esp32了

后话:Arduino的framework真香

【闲话】Vscode+PlatformIO+esp-idf+esp32物联网开发小记之环境搭建的更多相关文章

  1. 使用Kotlin开发Android应用 - 环境搭建 (1)

    一. 在Android Studio上安装Kotlin插件 按快捷键Command+, -> 在Preferences界面找到Plugins -> 点击Browse repositorie ...

  2. Tiny4412 开发板 编译环境搭建【转】

    本文转载自:http://blog.csdn.net/beijiwei/article/details/51055369 版权声明:本文为博主原创文章,未经博主允许不得转载. /*********** ...

  3. IoT设备程序开发及编译环境搭建初体验

    引言 Mirai事件一经曝出,立即引领了一轮研究IoT设备的热潮.目前,对Mirai的报告大多只是在对其功能实现上的介绍,却很少提及如何实现IoT设备程序开发的测试环境.本文在对Mirai的源码研究的 ...

  4. 基于GBT28181:SIP协议组件开发-----------第一篇环境搭建

    原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3930018.html,qq:1269122125. SIP协议在安 ...

  5. 1 IDEA 安装 及 IDEA开发 spring的环境搭建

    摘要: 主要讲解使用 IDEA 开发 Spring MVC 的环境搭建,Maven的简单教学. 参考1:https://my.oschina.net/gaussik/blog/385697 参考2:h ...

  6. Android NDK开发之从环境搭建到Demo级十步流

    写在正文之前: 几个月没有更新博客,感觉有点生疏了,所以说不能断,一断人就懒. 其实这几个月也并不是什么事也没有做,俺可是时刻想着今年的任务呢,10本书,30篇博文...,这几个月间断性的也是在学习中 ...

  7. UI5-学习篇-1-Eclipse开发工具及环境搭建

    最近研究SAP-UI5好几个月了,将相关学习经历及问题点做个记录. 1.先了解学习资料相关站点 SAP官网:https://www.sap.com/china/index.html SAP开发工具:h ...

  8. webapp开发学习---Cordova环境搭建

    Cordova 使用HTML, CSS & JS进行移动App开发;多平台共用一套代码;免费开源 步骤:(来自Cordova官网) 1.安装Cordova(在node.js环境下进行安装) 命 ...

  9. 前端开发 Vue -1windows环境搭建Vue Node开发环境

    解决几个疑问: 想学习下vue.js,我理解的它是一个前端的框架,主要作用是对数据的处理,和juqery类似,所以不太理解为什么要在nodejs中npm install vue呢?在html文件中引入 ...

  10. JavaSE 学习笔记01丨开发前言与环境搭建、基础语法

    本蒟蒻学习过C/C++的语法,故在学习Java的过程中,会关注于C++与Java的区别.开发前言部分,看了苏星河教程中的操作步骤.而后,主要阅读了<Java核心技术 卷1 基础知识>(第8 ...

随机推荐

  1. bash原样输出字符串中的换行

    ➜ code $ cat test.sh #!/bin/bash nr="`cat -`"\" echo "$nr" echo $nr echo &q ...

  2. avue入门

    <html> <head> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min. ...

  3. websocket-sharp 实现websocket

    第一步,使用VS创建一个应用程序 第二步,添加引用 websocket-sharp DLL文件,或者NuGet程序包中添加 第三部,创建Laputa 类 using WebSocketSharp; u ...

  4. 多重背包问题 II

    有 NN 种物品和一个容量是 VV 的背包. 第 ii 种物品最多有 sisi 件,每件体积是 vivi,价值是 wiwi. 求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大.输 ...

  5. day14-异常处理

    异常处理 1.基本介绍 SpringMVC 通过 HandlerExceptionResolver 处理程序的异常,包括 Handler映射.数据绑定以及目标方法执行时发生的异常 有两种方案来进行异常 ...

  6. 【Oculus Interaction SDK】(十)在 VR 中使用手势识别

    前言 前段时间 Oculus 的 SDK 频繁更新,很多已有的教程都不再适用于现在的版本了.本系列文章的主要目的是记录现版本常见功能的实现方法,便于自己后续开发.当然,不排除我文章刚写完 SDK 又变 ...

  7. 什么是整体设备效率(OEE)?

    整体设备效率 (OEE) 用于监控制造效率.得到的OEE百分比是通用的,可以跨不同行业和流程进行比较. OEE可用性 OEE可用性=实际运行时间/生产时间 OEE可用性是实际运行时间和计划生产时间之间 ...

  8. 基于电商直播SDK快速实现一个淘宝直播APP【内附源码】

    现在各大互联网APP都标配电商直播带货了,没有直播带货开发经验都感觉自己跟不上技术的进步.今天快速基于Java实现一个安卓端电商直播APP,深入理解整个电商直播开发流程.我们最终实现效果如下: 按照惯 ...

  9. 病程极短(≤16周)的495例未分化关节炎患者随访2年的结局[EULAR2015_SAT0055]

    病程极短(≤16周)的495例未分化关节炎患者随访2年的结局   SAT0055 TWO-YEAR OUTCOME IN 495 PATIENTS WITH UNDIFFERENTIATED ARTH ...

  10. layui 父子弹窗数据交互(包含子弹窗自己关闭并给父弹窗数据填充)

    //父级弹窗 function showAlertOrg() { layui.use('layer', function () { var body; var index = layer.open({ ...