【必看】ESP32-C3 IDF+VsCode 开发环境搭建(ubuntu 22.04)

发布于:2024-05-07 ⋅ 阅读:(21) ⋅ 点赞:(0)

详细可阅读官方文档😃(release/v4.4):点此进入

一、 安装准备🛠︎

1.1 工具链安装

  • 编译 ESP-IDF 需要以下软件包
sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

1.2 获取ESP-IDF

  • 在围绕 ESP32-C3 构建应用程序之前,请先获取乐鑫提供的软件库文件 ESP-IDF 仓库。简而言之就是clone GitHub官方仓库,后续需要在该库文件里配置。
  • 打开终端,创建文件夹esp,进入到该文件夹,进行克隆(需要魔法)。
mkdir -p ~/esp
cd ~/esp
git clone -b release/v4.4 --recursive https://github.com/espressif/esp-idf.git

克隆过程中比较缓慢,耐心等待,可能遇到下载中断等异常。

1.3 设置工具

  • 继续上方,克隆完成后需要对ESP-IDF进行设置,输入下面的指令完成设置
cd ~/esp/esp-idf
./install.sh esp32c3

简而言之就是运行esp-idf目录下的install.sh脚本,查看该脚本其实就是安装一些ESP-IDF的工具和python相关包等

二、测试例程🧪

  • 继续上方,安装好后我们可以测试一个hello_world例程,该例程在esp-idf/examples/get-started/hello_world里,我们把它拷贝到其他地方去。
cd ~/esp
cp -r $IDF_PATH/examples/get-started/hello_world .
  • 到此还不能直接编译工程!因为编译工程之前,需要先在该终端运行esp-idf目录下的export.sh脚本,之后就可以使用idf.py命令编译、烧录了。
  • 这里需要注意,换一个终端需要重新运行export.sh脚本(具体为何可以阅读该脚本),所以为了避免我们每次都需要进入esp-idf目录下运行该脚本的麻烦,所以需要设置环境变量,之后就可以不依靠esp-idf目录,起到esp-idf和工程分离的作用。

三、配置环境变量🖖

环境变量可以配到.profile、.bashrc、.zprofile里,这里配置到位于home里的./bashrc里,bash每次启动时都会加载。

  1. 设置环境变量 .bashrc
sudo vim ~/.bashrc 
  1. 在末尾增加以下
export IDF_PATH=~/esp/esp-idf
alias get_idf='. $IDF_PATH/export.sh'

IDF_PATH: esp-idf目录的路径,在一些脚本里都会使用。
get_idf:添加命令的别名,之后不需要再去esp-idf目录下运行export.sh,运行 get_idf 即可。

四、编译工程🥭

现在可以进入到hello_world里进行编译了。

  1. 编译工程需要用到idf.py,后续的烧录、调用监视器等都是用此工具。
  2. 但使用idf.py需要执行export.sh脚本,因为上一步把执行该脚本的指令已经添加了环境变量,所以只需要调用get_idf即可。
  3. 如果调用get_idf提示 ‘未找到命令’,可能因为没有配置好环境变量。
  4. 之后终端再输入get_idf
  5. 终端提示如下,可以使用idf.py工具了。
Done! You can now compile ESP-IDF projects.
Go to the project directory and run:

  idf.py build
  • 选择目标芯片
idf.py set-target esp32c3
  • 编译工程
idf.py build
  • 终端提示如下编译成功
......
r/bootloader.bin 0x8000 build/partition_table/partition-table.bin 0x10000 build/blink.bin
or run 'idf.py -p (PORT) flash'

之后可以在这基础上一些列步骤可以写成shell脚本

五、连接串口,烧录程序 🍾

  1. 连接开发板到ubuntu下,查看dev下的所有tty设备
ls /dev/tty*
  1. 会显示很多tty开头的字符设备,不同的电脑或开发板会有差异,我这里开发板的串口是ttyUSB0
  2. 之后下载到flash并打开监视器查看log的输出,快捷键Ctrl+] 退出IDF监视器。
idf.py -p /dev/ttyUSB0 -b 1152000 flash monitor 

-p: 指定端口
-b: 指定烧录波特率 1152000
monitor:IDF监视器

  1. 下载失败可能是没有对串口字符设备没有读写的权限,可以直接把ttyUSB的权限开到最大,但不是长久的解决方法。
  2. 将用户添加到 dialout 组,从而获许读写权限:
sudo usermod -a -G dialout $USER

或者

sudo usermod -a -G uucp $USER
  1. 更多有关 idf.py 参数的详情,请见 idf.py

六、使用VsCode开发

VSCode使用SSH无密码连接Ubuntu