ESP32 单片机学习笔记 - 00 - 前期准备工作

前言:本系列笔记是在github上写的,然后直接复制粘贴过来。所以我没怎么加图片,也写的很随意,基本就是边学边写的笔记。

目录

  • ESP32 单片机学习笔记 - 00 - 前期准备工作
    • 一、准备工作:工具链
    • 二、踩坑①
    • 三、弯路②
    • 四、悬崖③
    • 五、攀岩⑥
    • 六、上岸⑦
    • 七、总结

————————————————

ESP32 单片机学习笔记 - 00 - 前期准备工作

一、准备工作:工具链

  • 硬件上:我使用的是某宝优信上购买的ESP32 DEVKITV1。还有,数据线、电脑。

无关的吐槽:选这个板子也纠结了少许,不过现在看来应该影响不大,除了esp32,还有esp32-s2、s3,和esp8266。选了个折中的,还算不错。

官方对于不同系列芯片有详细介绍,因为是国内的,网速很快,中文也很方便查看。
官方芯片概述链接

  • 软件上:需要专属的工具链,ESP-IDF。下面介绍我尝试使用VS Code安装的过程。

无关的吐槽:折腾许久,网上的教程有点五花八门,最主要的是版本都不一样。我现在(2021.04.28)下载到的软件包界面什么的都跟网传教程有差异。

  1. 类比之前学过的51内核的stc系列、arm内核的stm和rt系列、英飞凌内核的tc系列、RISC-V 指令集的ch32v103系列,这类都有专门的IDE可以方便快捷的一键编译和新建工程。
  2. 但是这次的 ESP 系列就有点特殊,本身官方并没有推出专门的IDE软件。只有基于 Eclipse 或 VS Code 的插件,又或是其他IDE安装额外的软件包来支持。
  3. 可以类比之前学过的ROS工程,在 ubuntu 上也是没有固定的IDE,编译也是靠终端用命令行敲 cmake 编译。
  • 可以使用官方给的 “ESP-IDF 工具安装器” 安装 ESP-IDF。很方便,而且支持浏览器下载,我使用IDM抓取下载链接再下载,很快就下载好了。除此外,还可以在 VS code 上用插件 Espressif IDF 下载。不过网速巨慢,我一直卡断,就放弃了。

分享CSDN上比较详细的ESP-IDF教程:VS Code 配置ESP-IDF。我是先用官方的“安装器”下载安装了esp-idf和esp-tool工具集,然后再用vs code的插件选择已经安装好的目录。

  • 根据官方教程,vs codeEclipse 都不是必须的,官方文档也没细说配置。只要安装了安装器里的内容。就可以直接使用指令编译和下载。

官方中文教程文档,我选择完全安装,安装完毕后会生成3个快捷方式。

  1. 其中有两个终端的快捷方式,根据文档介绍,安装完毕后还需要配置一些环境变量。不过安装后生成的终端快捷方式中,已经设置好所有所需环境变量了。所以如果直接用这2个快捷方式启动终端的话,就可以使用指令编译工程。如果没有配置,又用普通终端,是无法使用编译指令的。
  2. 编译指令很特殊,是基于一个.py文件运行的。直接把例程抠出来,用指令编译,插上数据线打开串口(可能要更新驱动)flash下载。再打开串口查看效果。
  3. 欧耶,如果成功了就表示最简单的使用已经可以了。

无关的吐槽:在折腾vs code编译环境的配置上,折腾了很久。现在也没成功,一会在尝试一下。根据文档介绍,只要下载了工具链,那使用IDE链接工具链,就可以编译了。按这思路那不是随便一款ide差不多都支持esp的编译?大胆的想法,之后很好研究一下,顺便增长一下对工具链的理解。
另外,入门时,也听说可以使用Android快捷使用。使用官方工具安装器安装时还会额外安装一个简易版的Eclipse?也是需要自己配置的……还没弄好。 第一章教程就是想说明:折腾那么久还没弄好这个编译环境,如果不在意的话,安装完官方的工具链直接上命令行编译下载算了。

二、踩坑①

  • 刚刚发现个大佬的笔记,编写的很好,流程图也很完整,而且还有更新。太爱了。付上连接,赶紧点赞三连支持一下。(我上面想表达的和dalao的笔记内容差不多,但是dalao总结的很好,而且更加准确,惭愧和羡慕。要更加好好学习~)
  1. ESP32开发 0.windows Vscode开发环境搭建,基于esp-idf-V4.2 | Cmake | Vscode插件。我有一点很疑惑的,我看教程的tool工具和idf都是放开下载的。但是我其实从官方那下载的是一体的安装包。看dalao的截图,也能看到,虽然我的tool安装界面没那么多选项,基本一路下一步,不过最后也是同样出现了,分别安装tool和idf的目录。那为什么还要自己单独下载idf啊???这点还是不懂。
  2. 乐鑫ESP32开发 1.Vscode创建新工程,编译,下载烧录,监视端口,点亮一个LED。大佬很好的总结了一下编译下载流程,并吐槽不知道为什么vs code编译慢,而还有配置问题。所以dalao推荐使用官方配置的cmd编译下载,而vs code就只用作编写代码,这就有我当初写ros程序的感觉。

三、弯路②

  • 继续寻找为什么vs code不能编译esp32工程,我注意到报错内容和cmake相关。我就搜索相关内容,然后实现了在vs code上用cmake指令编译c++文件并生成了exe文件,在终端里运行也是可以的……相当于折腾了半天把vs6.0的功能在vscode上实现了……但是依旧还是不能编译esp32工程。不过起码错误信息变了……我安装了cmake后就弹出了指引错误了。没安装之前还不会有错的……

在vscode和cmake的配置上,学习了这篇文章:VSCode CMake 安装与配置详解。需要注意几点:

  1. 下载安装可能超时,重新尝试下载安装就好了。
  2. 安装完成后要手动设置环境变量才可以使用指令gcc -v查看。
  3. 不知道为什么不能使用make -v指令,倒是可以使用cmake -help,和文章描述不一样。
  4. 安装完毕后要在vscode里配置,文章没有提到一点,除了选了链接器,还要选择“生成的构建文件是什么”,找到一篇笔记:VSCode cmake tools插件报错,是这样描述的。是添加在cmake tools插件的json文件里,设置面板也有单独设立,可以找找:"cmake.generator": "MinGW Makefiles".
  • 还有个问题,虽然我安装了cmake,又下载了新的工具链,但是插件cmake tools还是找不到我的esp工具链,手动想在配置文件json里加,自己又不会。幸好,找到了一篇笔记:Visual studio Code 安装 CMake 踩坑日志. 无法找到你的 新安装的编译工具 kit,解释了为什么工具没有自动搜索我电脑已安装的工具链,原来把原有的json删除了让系统重新生成就可以了。

按F1输入cmake:configure就可以看到这个文件,应该也可以手动改这个文件,也可以手动把它删了让系统创建自动再生成一个,就扫描到我电脑安装的其他工具链了。如果还是找不到,可以检查有没有添加环境变量。(操作的步骤越堆越多,我都不知道哪一步才是必须的,哪一步是多余的了。所以只能把所有流程都记录一下。)

  • 不过,不过,我还是不能使用vscode的编译按钮等……看来还有没解决的问题。
  • 再认真开一遍不一样的输出(错误)信息,看到有描述说找不到python子类的问题,让我再认真看手册。我返回手册找到对应章节,找到了:在最后的部分有一段介绍了2种方法打开不同的esp-idf,一种是直接创建快捷方式,打开不同的快捷方式就可以了。另一种就是通过普通的cmd启动,不过“如果您在使用时遇到有关“找不到 Python 或 Git”的错误信息,请使用第一种方法。”……折腾来折腾去都没弄好……

四、悬崖③

  • 我不愿放弃,非要整好这个编译环境不可,然后再尝试找帖子文章,看看有没有漏掉的操作。想起来之前看官方文档时,在最后有介绍一种被抛弃的编译方法,我返回去看看。发现被抛弃的就是使用make指令编译的方式,和现在最直接的不同就是把make换成了idf.py后面的附加选项指令没怎么变。这么想起来之前看的几篇文章说不定都是这种旧的方式,因为文章中提到的sysm32文件夹完全找不到,而且编译的提示界面也不太一样。

  • 又找了一篇教程:esp32 window下v4.0版本初试及vscode配置。再回顾错误提示Warning: python interpreter not running from IDF_PYTHON_ENV_PATH,我想起来之前看官方文档时有提到一个关于python版本的问题,还特别提醒3.7和3.8的区别。我想是不是我的版本没选对,我在安装文件夹下也确实看到3.8和3.7两个关键词的文件夹。

  • 再细看手册发现,有“工具链的自定义设置”一章,和我现在挣扎的事情就有点像……“建议直接使用我们提供的预编译二进制工具链”。还有“快速入门(传统 GNU Make)”一章,里面提到了“第四步:安装 Python 软件包”。我之前也在个人教程里看到这一步……之前没运行成功就暂时跳过了……现在才发现这里面提到的python包就是我报错时说找不到的文件……我也发现之前运行失败的原因,使用$IDF_PATH没有效果,我直接把绝对路径丢进去就成功。 不过还是有提示我有安装冲突……

我急忙重启vscode试试可不可以,之前我发现esp插件的删除功能还是可以用的……把编译文件夹删掉,就是其他功能都提示错误。这一次我重启vscode后发现居然开始产生了编译文件,很激动,以为是成功了……结果自己单独点编译键还是提示失败。点主页键还是提示找不到那几个包…………!!!结合刚刚的esp32 window下v4.0版本初试及vscode配置,可以得知,其实这些快捷键的功能都是.json文件生成的。(话说开始对vscode的配置文件刮目相看,居然是可以直接改变软件界面的。)现在开始把目光着重在找不到宏定义上。

五、攀岩⑥

  • 经过一步步的探索,我现在把目光锁定在了python版本上,因为我发现用官方安装器安装的python目录下居然有2个版本3.7和3.8。而且我还发现如果我单独使用原始终端调用export.ps1export.bat是会报错的,实际也不能运行idf.py。查看编译信息,惊人的发现和vscode的错误信息一样。都是指代idf4.2_py3.7_env,折腾了一下,发现esp插件的设置中,原来可以修改默认端口号和python目录。不过改了之后还是不可以。一直指向3.7版本的,而且报错信息还提醒我要更新,我复制指令运行(发现其实很多解决方法都写在报错信息中啊……)时,提示我pip版本低,我震惊,我昨天才更新了。使用pip -V查看版本和目录,发现原来又是指向了工具链中3.7版本的(话说我发现原来我电脑默认是3.7版本的)。一气之下,直接把idf4.2_py3.7_env文件备份后就删了,一劳永逸……结果真的就解决了默认终端不能编译的问题,只要把配置文件先运行一下,就可以实现在默认终端也使用idf.py指令了。然后兴奋的在vscode里尝试,还是失败了,不可以……。

六、上岸⑦

  • 发现把idf4.2_py3.7_env文件删了后,vscode里的终端也可以编译和下载了。虽然快捷按钮还是不行。这时就开始怀疑起,其实是不是是按钮自己的问题。结合大佬的笔记:esp32 window下v4.0版本初试及vscode配置,对vscode的c_cpp_properties.jsontasks.json有了了解,我开始怀疑是不是我没改按钮的配置而已,或是这个配置我还没写……折腾我那么久。另外,明白按钮其实就是通过json文件在vscode里调用命令执行,那在vscode里运行的时间,应该和在普通终端运行的时间是一样的才对。实际上,确实是感觉vscode慢了一点,不知道是不是错觉。

  • 再者,就是使用vscode编程,esp库是在idf文件内的,通过c_cpp_properties.json链接过去。这对我不太友好,如果可以还是希望基本的库文件能在工程目录给我看,这样我还可以改动。之后再看看ESP-IDF Eclipse的配置,如果可以,说不定会用它多一点。比较符合我对c的编写习惯。

七、总结

  1. 感觉我之前安装CMake是不是也是多余的,不过安装之后,每vscode打开工程就会在输出打印基本信息,感觉好像还是有点用。 还发现,vscode左下角选择python解释器处,还多了1个esp工具中的版本。之前看明明没有的。真的不知道删了一个文件夹,刷新了多少东西2333。
  2. 还发现原来tasks.json文件不是自动生成了,是要自己配置的,我删了后就没有出现了。诶呀,我之前,vscode里有好几个json文件,我删了后还想着会生成默认的呢。 没想到没有了。其中想找到esp插件的json文件也找不到的,从设置里进入得到是settings.json。我看之前的hollw的例程里有,就想到是不是esp例程里特有的,就再导出一个例程。发现果然如此,而且每次重新打开一个工程就会要选择工具链,同时cmake开始解析json里指定的头文件,链接工程中导入的头文件。这下子就不会出现找不到头文件的情况了。不过这一开始的编译属于预加载文件,并没有真的编译,也没有生成bin文件,不可以下载。这下,我可以根据json里的配置修改内容,开始真正的单片机编程学习之路了。
  3. 现在vscode还是不能用快捷键编译,不过可以下载和打开串口。暂时就这样吧,不继续耗下去了。另外,我发现esp32的资料是不是太少了,在小破站搜也没多少系列教程,倒是esp8266有好多。感觉作为入门,我是不是选错了……算了,自己把所有例程都实现一遍,应该也差不多了。

你可能感兴趣的:(Espressif,学习笔记,esp32,c语言,c#)