原文来自:https://www.makingfun.xyz/2018/09/18/esp32-hello-world/

前言

前几天看到乐鑫的公众号推送了一篇文章,说是ESP8266最新的SDK风格已经和ESP32相近,又想着自己已经好久没有接触过ESP8266了,想搭建个环境玩一下,结果一言难尽,鼓捣了半天愣是没弄成,突然遭受的挫折让人有些无奈,于是想还是先学习一下ESP32吧,之前也接触过,但是当时主要是玩ESP8266,其两者的代码风格以及开发方式大相径庭,于是也就没有细致的深入学习,现在看来ESP8266跟ESP32的开发方式大有‘合拢’之势,当然不是完全一样,只是乐鑫的攻城狮在努力的封装成一样的,貌似从头学习一下ESP32也是很有必要的。
ESP8266跟ESP32真是这两年物联网行业的一匹黑马,不得不说的是乐鑫是一家本土企业,其总部在上海,芯片出货量已经达到1亿颗,看到国内的企业能够有如此成就真的也很高兴。乐鑫官网感兴趣的同学可以去乐鑫官网看看~
其硬件开发环境搭建也很简单,网上也有很多教程,这里就简单说一下。

下载安装相关工具

工具链

工具链在这里主要是用来编译我们编写的代码的,就是类似于编译器,这里乐鑫给我们已经打包好了工具链所需要的运行环境,我们只需要下载解压就好。下载地址点这里:工具链,大家可以根据自己的开发平台选择。我这里使用的是Windows操作系统,后面的步骤都是在此操作系统下讲解。

工具链安装

工具链安装很简单,解压到某个路径下就可以了,不过不支持带有空格的路径和中文路径。

我这里是在G盘新建了一个espressif文件夹,将工具链直接下载到了此文件夹,并解压到了当前文件夹,msys32就是解压出来的文件。

下载ESP-IDF(SDK)

这里我们使用git去下载,请确保已经安装了git,不要下载zip格式的SDK,那样会报错。

1
git clone -b v3.1 --recursive https://github.com/espressif/esp-idf.git

-b v3.1是下载v3.1版本,目前最新的版本版,ESP-IDF目前有好几个分支。
–recursive 此命令会自动初始化并更新仓库中的每一个子模块,不要遗漏此选项,否则后面编译会报错。

设置IDF_PATH


打开esp32_toolchain.sh,不要双击打开,也不要用记事本打开,可以看到已经有了IDF_PATH,这里我们追加一条PATH,其路径就是你刚刚下载的ESP-IDF的路径。设置完成后关闭mingw32,再重新打开,这里主要是让刚刚设置的PATH生效,如果你有Linux使用经验的话,也可以用source的方法。
下面我们看一下是否设置成功:

1
2
echo $IDF_PATH
echo $PATH

如果打出的路径跟你设置的一样,那就没问题了,到此为止环境就搭建成功了。

编译hello world工程

环境搭建完成后,当然是来到了激动人心的hello world环节了!我们先不做任何更改直接编译官方给出的例子。

1
2
3
cd $IDF_PATH/examples/get-started/hello_world/

make menuconfig

执行完上面的命令,会出现一个界面我们选择Serial flasher config,然后将第一项的端口修改成我们的开发板的端口,e.g. COM7,这是Windows上的端口格式。

1
2
make all #编译速度可能有点慢,实测需要2分20秒左右,将配置 app 和 bootloader 并根据配置生成分区表
make flash #烧录用户程序,bootloader,分区表

1
make monitor #打开监视器,查看串口打印


可以看到成功打印出了hello world,并每十秒重启一次。下面我们修改一下代码,让它每隔一秒打印 www.makingfun.xyz
我们先将这个工程copy到别的文件夹,我们不在原工程上进行修改。

1
2
mkdir ~/projects && cd projects
cp -r $IDF_PATH/examples/get-started/hello_world .


然后我们打开这个工程main文件夹下的hello_world_main.c文件,修改成跟上图一样。修改完成后我们需要重新编译一下,之前我们已经把整个SDK编译了一遍,所以这里我们只需要编译用户文件就好,不用重复去编译整个的文件。

1
2
3
make app #仅创建应用程序
make app-flash #仅烧录应用程序
make monitor


可以看到成功打印出了我们想要的日志,到这里,我们不仅完成了开发环境的搭建,也编译了例程,而且还通过修改代码了解了大体的开发流程。
这里给分享一下官方的编程指南和API参考指南。
编程指南
API指南
ESP-IDF官方仓库
很多内容都是英文,尤其是API指南,全都是英文的,但大体都是很好理解的,现在各种翻译软件也很多,遇到实在不懂的,可以用用翻译软件查看一下。

欢迎访问我的主页,我会不定期更新一些文章,也欢迎留言哦~
唯有爱与科技不可辜负

重新学习ESP32(零)之环境搭建——转载——windows平台的更多相关文章

  1. Scala学习1————scala开发环境搭建(windows 10)

    Scala开发环境搭建 先讲几点我学习scala的目的或者原因吧: JVM在企业中的霸主地位,Scala也是JVM上的语言,很有可能未来会从Java过度到Scala也不是不可能. 先进的函数式编程和面 ...

  2. 深度学习(TensorFlow)环境搭建:(三)Ubuntu16.04+CUDA8.0+cuDNN7+Anaconda4.4+Python3.6+TensorFlow1.3

    紧接着上一篇的文章<深度学习(TensorFlow)环境搭建:(二)Ubuntu16.04+1080Ti显卡驱动>,这篇文章,主要讲解如何安装CUDA+CUDNN,不过前提是我们是已经把N ...

  3. 深度学习(TensorFlow)环境搭建:(二)Ubuntu16.04+1080Ti显卡驱动

    前几天把刚拿到了2台GPU机器组装好了,也写了篇硬件配置清单的文章——<深度学习(TensorFlow)环境搭建:(一)硬件选购和主机组装>.这两台也在安装Ubuntu 16.04和108 ...

  4. MyBatis学习系列一之环境搭建

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 学习一个新的知识,首先做一个简单的例子使用一下,然后再逐步深入.MyBat ...

  5. Hadoop学习笔记(3)——分布式环境搭建

    Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...

  6. Nutch1.7学习笔记:基本环境搭建及使用

    Nutch1.7学习笔记:基本环境搭建及使用 作者:雨水,时间:2013-10-31博客地址:http://blog.csdn.net/gobitan 说明:Nutch有两个主版本1.x和2.x,它们 ...

  7. opengl基础学习专题 (一 )编程环境搭建

    题外话: 第一次在博客园上同大家分享博文.水的的地方,错别字的地方.环境交流.批评.知道了马上改. 以前在百度空间中写技术分享博文,后来百度啥也没说就把整个空间封了.当时感觉 还是有点寒心.只想黑一下 ...

  8. Koa2学习(一)环境搭建

    Koa2学习(一)环境搭建 koa2脚手架 koa2服务安装 koa2-generator目录结构 什么是 Koa2 koa 是由 Express 原班人马打造的,致力于成为一个更小.更富有表现力.更 ...

  9. Python环境搭建(Windows)

    ·Python环境搭建(Windows) @ 下载Python  Python官网:https://www.python.org/  Python帮助文档下载地址:https://www.python ...

随机推荐

  1. 【Python】【demo实验6】【练习实例】【奖金发放计算(阶梯)】

    题目: 企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%:20万到40万 ...

  2. 小白windows上搭建linux环境

    我使用的oracle VM VirtualBox,下载使用就好了 这是用的虚拟机,不是搭建linux系统,不用担心把电脑搞坏,游戏打不了 全程很简单,基本都是默认,下一步 下一步 默认下一步 创建 下 ...

  3. Java EE javax.servlet.http中的HttpSession接口

    HttpSession接口 public interface HttpSession (https://docs.oracle.com/javaee/7/api/javax/servlet/http/ ...

  4. Scala学习五——类

    一.本章要点 类中的字段自动带有getter方法和setter方法 你可以用定制的getter/setter方法替换掉字段的定义,而不必修改使用类的客户端——这就是所谓的”统一访问原则“ 用@Bean ...

  5. Spring 配置文件注入

    一.Spring配置文件注入 package com.zxguan.demo; public class Person { private String name; private int age; ...

  6. Unity鼠标移动到物体上显示信息

    相信大家玩游戏的时候,鼠标移动到游戏装备上,都会显示装备的的具体信息,那么接下来就写代码把,废话不多说. 下面是 效果图 鼠标移动到装备位置显示的信息,鼠标移动不在装备区域后不现实信息,下面是代码 : ...

  7. .NET CORE API 使用Postman中Post请求获取不到传参问题

    开发中遇到个坑 记录下. 使用Postman请求core api 接口时,按之前的使用方法(form-data , x-www-form-urlencoded)怎么设置都无法访问. 最后采用raw写入 ...

  8. vim之快捷键

    Vim 编辑器是一个基于命令行的工具,是传奇编辑器 vi 的增强版.尽管图形界面的富文本编辑有很多,但是熟悉 Vim 对于每一位 Linux 的使用者都能有所帮助——无论你是经验丰富的系统管理员,还是 ...

  9. CSS—BFC原理解析与应用

    我们在很多地方都见过BFC这个词,或许能够知道大概意思,但是有时候它的具体原理以及作用会记得很模糊,下面就对BFC这个概念深入学习下. 块级格式化上下文(Block Formatting Contex ...

  10. WinForm - 不用自绘实现仿QQ2013

    素材啥的都是一手整理的,绝对的原创.这是13年做的,虽然是个老项目了,可里面涉及的winform技术不会过时,所以就拿出来重温探讨下技术要点. 没使用任何自绘命令,可以说是非常容易理解与学习的. 效果 ...