您现在的位置是:首页 >其他 >Vscode搭建ESP-IDF开发环境指南-Ubuntu ESP32-C3 合宙网站首页其他
Vscode搭建ESP-IDF开发环境指南-Ubuntu ESP32-C3 合宙
文章目录
开发板使用的是合宙的ESP32-C3经典版,因为合宙本身推荐使用合宙推出的LuatOS开发环境,所以没有ESP-IDF相关的教程,只能参考乐鑫官方的ESP-IDF教程。
开发环境使用Ubuntu22.04.1+Vscode+ESP-IDF插件
1.Ubuntu环境搭建
本打算用WSL来开发,但是遇到了WSL2无法直接使用Windows的USB串口的问题,微软本身也提供了解决方案,但最重要的是合宙的这个板子用了ch343这款串口芯片,在wsl上无法安装驱动,所以只能用虚拟机或者直接安装ubuntu双系统的方案了。因为虚拟机用起来有些卡,正好我之前不用的硬盘里还有Ubuntu系统,所以可以直接在硬盘启动ubuntu。参考:ubuntu双系统
系统搭建好了以后需要安装运行ESP-IDF必要的包
这一步很重要,否则在装ESP-IDF的时候会报错
sudo apt-get install git wget flex bison gperf python3 python3-venv python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
2.vscode安装
其实也可以不使用vscode直接搭建idf,但是乐鑫官方有vscode的插件,可以省去一些不必要的操作,同时vsocde看源码,写代码也比较方便。
3.esp-idf插件
安装完成之后ctrl + shift +p
输入esp选择espidf configure
进入下面的界面,选择advanced(如果遇到打不开下面界面的情况,很可能是这个插件的版本问题,重新装一个老版本再试一下)
-
在下面选择安装源,如果选github,需要你的浏览器能打开github,如果不行就换个安装源
-
然后选择ESP-IDF版本,选择最新稳定版即可
-
选择安装路径
-
选择工具链的路径
-
选择python路径
如果到这里没出现问题的话,就能顺利安装了,如果出现问题会在输出那一栏里报错,根据错误去找原因就好,常见的错误就是网络原因以及之前的依赖包没有装好
配置环境变量
这个插件并没有配置环境变量,需要手动配置一下
执行命令
. ~/em/esp/esp-idf/export.sh
注意 . 和 ~之间有个空格
这是我设置的路径,具体路径根据export.sh文件所在的路径来
vi ~/.bashrc
输入
export IDF_PATH=/home/linu/em/esp/esp-idf
export PATH="$IDF_PATH/tools:$PATH"
完成后shift+zz保存退出
新建点灯工程
vscode中ctrl+shift+p,选择new project
然后点击右下角的choose template后,选择一个模板作为工程模板,选择blink
生成之后右下角有个yes,点击后会打开一个新页面,里面就是刚才新建的模板工程,如下图所示:
修改代码
开发板上的灯在IO12和IO13上,随便选一个
/* Blink Example
This example code is in the Public Domain (or CC0 licensed, at your option.)
Unless required by applicable law or agreed to in writing, this
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied.
*/
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "esp_log.h"
#include "led_strip.h"
#include "sdkconfig.h"
static const char *TAG = "example";
/* Use project configuration menu (idf.py menuconfig) to choose the GPIO to blink,
or you can edit the following line and set a number here.
*/
#define BLINK_GPIO 13
static uint8_t s_led_state = 0;
static void blink_led(void)
{
/* Set the GPIO level according to the state (LOW or HIGH)*/
gpio_set_level(BLINK_GPIO, s_led_state);
}
static void configure_led(void)
{
ESP_LOGI(TAG, "Example configured to blink GPIO LED!");
gpio_reset_pin(BLINK_GPIO);
/* Set the GPIO as a push/pull output */
gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);
gpio_set_drive_capability(BLINK_GPIO, GPIO_DRIVE_CAP_MAX);
}
void app_main(void)
{
/* Configure the peripheral according to the LED type */
configure_led();
while (1) {
ESP_LOGI(TAG, "Turning the LED %s!", s_led_state == true ? "ON" : "OFF");
blink_led();
/* Toggle the LED state */
s_led_state = !s_led_state;
vTaskDelay(CONFIG_BLINK_PERIOD / portTICK_PERIOD_MS);
}
}
构建,烧录
最下面的一栏里有构建,烧录,以及串口监视按钮,还有一键编译烧录,非常方便。
不过也可以使用命令行的方式,需要注意右侧的shell必须是ESP-IDF才能正常使用idf.py命令可以通过下面的一个方框里面一个箭头的按钮打开,否则会提示需要在ESP的虚拟环境中使用该命令
命令行的方式可以通过
idf.py build #编译
idf.py flash #烧录
烧录完成后,可以看到开发板上的灯以1HZ频率闪烁
串口问题
这个开发板使用的是CH343,系统上一般没有,需要安装驱动
github地址
使用说明里面有具体步骤,但是在sudo make load的时候遇到了需要签名的问题,这方面第一次遇见,不太懂,然后参考这篇帖子解决了