简单介绍
idf接口复杂偏向底层,但是api丰富,灵活性高;esp32-arduino的api少,灵活性不够,但是接口却简单易用,能大幅提高开发效率。那么通过让esp32-arduino作为idf的组件,这样既能使用esp32-arduino的接口又能使用idf的接口,同时兼顾各自优点于一身。这里推荐能使用esp32-arduino接口的情况则尽量使用arduino接口,除非项目由于需求而导致某个部分对性能要求极高或者要使用esp32-arduino本身所不具有的api功能,比如说低功耗蓝牙外设和sdio,esp32-arduino中当前并没有这个外设的api,那么只能使用idf接口。当然在大多数情况下,esp32-arduino是足够的,这有以下几点依据:1、对于性能来说,esp32硬件本身最高支持240MHz,并且是双核的,即使esp32-arduino开发的程序是经过层层封装,那么使用它开发的程序运行速度也是足够适应mcu场合的。
2、对于esp32-arduino的接口来说,esp32官方esp32-arduino文档支持了很多外设,即使有些外设的功能不能支持使用,但是可以使用idf。
制作示例项目
可以借鉴esp32的arduino文档制作一个简单的示例项目(建议用Ubuntu系统做,在b站有一个好的教程,在Linux上编译速度要比windows快很多),这样就不需要通过vscode的插件创建项目了(至于为什么要这样,是因为通过vscode或eclipse创建以arduino为组件的项目的成功率很低,不要问为什么,我曾经配置了2天都不行),这里我用之前制作好的示例项目。
搭建环境版本一(不推荐)
接下来正式搭建环境,这里使用vscode,在vscode中安装idf插件,通过插件安装idf5.3版本(5.3版本是github上esp32-arduino最新稳定版本中所要求的,至于要安装哪个版本需要在GitHub上esp32-arduino中去看),之后用vscode打开我们制作的示例项目,编译烧录,成功。
搭建环境版本二(推荐)
通过vscode插件remote ssh连接ubuntu系统,这样就可以通过vscode在Ubuntu里编写代码,在Ubuntu里编译代码(详细过程请看b站教程)。