ESP32学习笔记(1)—— 搭建开发环境、编译烧录 hello world 工程(基于rtos sdk 3.3.2)

前言

ESP32 是一套 Wi-Fi (2.4 GHz) 和蓝牙 (4.2) 双模解决方案。

sdk版本:v3.3.2

此次实验是在 Windows 10 系统下利用虚拟机安装 Ubuntu 16.04系统,并在此系统中进行开发编译和下载固件。

 

一、准备工作

此实验需要准备以下软件

1.Ubuntu 16.04系统:

系统搭建方法可以看我的另一篇文章 https://blog.csdn.net/m_pfly_fish/article/details/104872286

2.工具链(用于编译 ESP32 应用程序):

3.ESP-IDF:

包含 ESP32 API 和用于操作工具链的脚本。从git上克隆下来时间比较长,我这边备份了一份下载好的V3.3.2版本idf:

https://download.csdn.net/download/m_pfly_fish/12739713

4.代码编辑器,我使用的是 Source Insight 4.0。

 

二、设置工具链

2.1 安装软件包

设置工具链需要提前安装以下软件包

sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-cryptography python-future python-pyparsing libffi-dev libssl-dev

我因为已经安装完成了,所以显示如下:

2.2 设置工具链

下载64位的 esp32 工具链

下载完成后,将它解压到 ~/esp 目录:

mkdir -p ~/esp
cd ~/esp
tar -xzf ~/Downloads/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz

2.3 设置环境变量

工具链将会被解压到 ~/esp/xtensa-esp32-elf/ 目录。

要使用工具链,你还需要在 ~/.profile 文件中更新环境变量 PATH。要使 xtensa-esp32-elf 在所有的终端会话中都有效,需要将下面这一行代码添加到你的 ~/.profile 文件中:

export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"

退出并重新登录以使 .profile 更改生效。 运行以下命令来检查 PATH 设置是否正确:

printenv PATH

设置成功应该能够找到工具链的安装路径

 

三、设置 ESP-IDF

3.1 获取 ESP-IDF

工具链(包括用于编译和构建应用程序的程序)安装完后,你还需要 ESP32 相关的 API/库。API/库在 ESP-IDF仓库 中。获取本地副本:打开终端,切换到你要存放 ESP-IDF 的工作目录,使用 git clone 命令克隆远程仓库:

cd ~/esp
git clone -b v3.3.2 --recursive https://github.com/espressif/esp-idf.git

ESP-IDF 将会被下载到 ~/esp/esp-idf 目录下。

3.2 设置 ESP-IDF 路径

在 ~/.profile 文件中加入以下指令,创建 IDF_PATH

export IDF_PATH=~/esp/esp-idf

运行以下命令以确保 IDF_PATH 已经设置好:

printenv IDF_PATH

此前在 ~/.profile 文件中输入(或者手动设置)的路径应该被打印出来。如果不想永久设置 IDF_PATH,每次重启或者注销时在终端窗口中手动输入:

export IDF_PATH=~/esp/esp-idf

3.3 安装依赖的 Python 软件包

ESP-IDF 所依赖的 Python 软件包位于 $IDF_PATH/requirements.txt 文件中,您可以通过运行以下命令来安装它们:

python2.7 -m pip install --user -r $IDF_PATH/requirements.txt

 

四、编译和烧写 hello_world 工程

4.1 创建 hello_world 工程

现在可以开始创建 ESP32 应用程序了。为了快速开始,我们这里以 IDF 的 examples 目录下的 get-started/hello_world 工程为例进行说明。

将 get-started/hello_world  拷贝到 ~/esp 目录:

cd ~/esp
cp -r $IDF_PATH/examples/get-started/hello_world

4.2 连接usb

用 USB 线将 ESP32 开发板连接到 PC,要查看 ESP32 开发板的串口设备名称,运行以下命令两次:

ls /dev/tty*

第一次先拔下开发板或适配器,第二次插入开发板或适配器之后再运行命令,第二次运行指令后出现的端口即是 ESP32 对应的串口

将自己的用户加入到dialout组获取usb权限

sudo usermod -aG dialout teashaw

teashaw改成自己的用户名,然后logout一下,就永久生效了。

4.3 工程配置

在终端窗口中,输入 cd ~/esp/hello_world 进入 hello_world 所在目录,然后启动工程配置工具 menuconfig

cd ~/esp/hello_world
make menuconfig

如果之前的步骤都正确,则会显示下面的菜单:

在菜单中,进入 Serial flasher config > Default serial port 配置串口(工程将会加载到该串口上)。输入回车确认选择,选择 < Save > 保存配置,然后选择 < Exit > 退出应用程序。

4.4 编译和烧写

执行指令:

make flash

这条命令会编译应用程序和所有的 ESP-IDF 组件,生成 bootloader、分区表和应用程序 bin 文件,并将这些 bin 文件烧写到 ESP32 板子上。

esptool.py v2.0-beta2
Flashing binaries to serial port /dev/ttyUSB0 (app at offset 0x10000)...
esptool.py v2.0-beta2
Connecting........___
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Attaching SPI flash...
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0220
Compressed 11616 bytes to 6695...
Wrote 11616 bytes (6695 compressed) at 0x00001000 in 0.1 seconds (effective 920.5 kbit/s)...
Hash of data verified.
Compressed 408096 bytes to 171625...
Wrote 408096 bytes (171625 compressed) at 0x00010000 in 3.9 seconds (effective 847.3 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 82...
Wrote 3072 bytes (82 compressed) at 0x00008000 in 0.0 seconds (effective 8297.4 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting...

如果没有任何问题,在编译过程结束后将能看到类似上面的消息。最后,板子将会复位,应用程序 “hello_world” 开始启动。

4.5 监视器

如果要查看 “hello_world” 程序是否真的在运行,输入命令 make monitor。这个命令会启动 IDF Monitor 程序:

$ make monitor
MONITOR
--- idf_monitor on /dev/ttyUSB0 115200 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
ets Jun  8 2016 00:22:57
...

在启动消息和诊断消息后,你就能看到 “Hello world!” 程序所打印的消息:

...
Hello world!
Restarting in 10 seconds...
I (211) cpu_start: Starting scheduler on APP CPU.
Restarting in 9 seconds...
Restarting in 8 seconds...
Restarting in 7 seconds...

要退出监视器,请使用快捷键 Ctrl+]

如果串口打印的不是上面显示的消息而是类似下面的乱码:

e���)(Xn@�y.!��(�PW+)��Hn9a؅/9�!�t5��P�~�k��e�ea�5�jA
~zY��Y(1�,1�� e���)(Xn@�y.!Dr�zY(�jpi�|�+z5Ymvp

或者监视器程序启动失败,那么可能你的开发板用的是 26 MHz 晶振,而 ESP-IDF 默认的是 40 MHz 晶振。请退出监视器,回到配置,将 CONFIG_ESP32_XTAL_FREQ_SEL 改为 26 MHz,然后再次编译和烧写。请在 make menuconfig 的 Component config –> ESP32-specific –> Main XTAL frequency 中配置。

要一次性执行 make flash 和 make monitor,输入 make flash monitor。参考文档 IDF Monitor 里的快捷键和更多内容。

文档链接:https://docs.espressif.com/projects/esp-idf/zh_CN/v3.3.2/get-started/idf-monitor.html

4.6 更新 ESP-IDF

使用 ESP-IDF 一段时间后,你可能想要进行升级来获得新的性能或者对 bug 进行修复。最简单的更新方式是删除已有的 esp-idf 文件夹然后再克隆一个,即重复 获取ESP-IDF 里的操作。

然后在用户配置文件中添加 IDF_PATH,这样工具链脚本就能够知道这一版本的 ESP-IDF 的具体位置。

 

### IntelliJ IDEA 中通义 AI 功能介绍 IntelliJ IDEA 提供了一系列强大的工具来增强开发体验,其中包括与通义 AI 相关的功能。这些功能可以帮助开发者更高效地编写代并提高生产力。 #### 安装通义插件 为了使用通义的相关特性,在 IntelliJ IDEA 中需要先安装对应的插件: 1. 打开 **Settings/Preferences** 对话框 (Ctrl+Alt+S 或 Cmd+, on macOS)。 2. 导航到 `Plugins` 页面[^1]。 3. 在 Marketplace 中搜索 "通义" 并点击安装按钮。 4. 完成安装后重启 IDE 使更改生效。 #### 配置通义服务 成功安装插件之后,还需要配置通义的服务连接信息以便正常使用其提供的各项能力: - 进入设置中的 `Tools | Qwen Coding Assistant` 菜单项[^2]。 - 填写 API Key 和其他必要的认证参数。 - 测试连接以确认配置无误。 #### 使用通义辅助编程 一旦完成上述准备工作,就可以利用通义来进行智能编支持了。具体操作如下所示: ##### 自动补全代片段 当输入部分语句时,IDE 将自动提示可能的后续逻辑,并允许一键插入完整的实现方案[^3]。 ```java // 输入 while 循环条件前半部分... while (!list.isEmpty()) { // 激活建议列表选择合适的循环体内容 } ``` ##### 解释现有代含义 选中某段复杂的表达式或函数调用,右键菜单里会有选项可以请求通义解析这段代的作用以及优化意见。 ##### 生产测试案例 对于已有的业务逻辑模块,借助于通义能够快速生成单元测试框架及初始断言集,减少手动构建的成本。 ```python def test_addition(): result = add(2, 3) assert result == 5, f"Expected 5 but got {result}" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值