Skip to content

说明:

  1. 本文档由DuRuofu撰写,由DuRuofu负责解释及执行。
  2. 本文档记录ESP32学习过程中的相关笔记。

修订历史:

文档名称版本作者时间备注
ESP32学习计划v1.0.0DuRuofu2023-08-28首次建立
ESP32学习计划v1.0.1DuRuofu2023-09-2补充
ESP32学习计划v1.1.0DuRuofu2023-09-13补充

ESP32学习计划

一、认知阶段📌

  • 目标:学会安装esp-idf开发环境,并使用其烧录代码,学会工具使用。

1. 1 准备开发环境

安装 esp-idf 开发环境,并进行设置。

参考:

基于官方提供的示例程序,我们可以了解到最基本的工程结构:

1.2 点灯程序:

创建一个最简单的程序,点亮板载的LED灯。(使用官方历程)

1.3 Hello World 程序

创建一个最简单的程序,如打印 "Hello world!" 到串口。(使用官方历程)

二、IDF学习📌

目标:学会安装esp-idf开发环境的项目配置,包括配置菜单,可变参数宏,组件机制。

2.1 ESP32工程结构及构建

2.2 ESP-IDF项目配置(Menuconfig)

2.3 ESP-IDF自定义组件(components)

2.4 ESP-IDF组件管理器

三、基础外设学习📌

3.1 GPIO

3.1.1 GPIO输出/输出

3.1.2 GPIO中断

3.2 UART

3.3 硬件定时器

3.4 ADC

3.4.1 ADC单次转换

3.4.2 ADC连续转换

3.5 DAC

3.6 LED PWM

3.7 I2C

四、ESP32存储器学习📌

4.1 分区表

4.2 非易失性存储 (NVS)

4.3 FAT文件系统

4.4 SPIFFS 文件系统

五、ESP32 WFI学习📌

5.1 WIFI入门

5.2 TCP协议

5.3 UDP协议

5.4 HTTP协议

5.4.1 客户端协议

5.4.1 服务端协议

5.5 webSocket协议

5.6 MQTT协议

5.7 ESP-NOW协议

六、ESP32 蓝牙学习📌

七、ESP32其他系统API学习📌

7.1 软件定时器

八、ESP32FreeRTOS📌

8.1 FreeRTOS基础 8.2 ESP32中FreeRTOS启动过程 8.3 任务(task) 8.4 队列传递数据 8.5 定时器&信号量 8.6 事件组 8.7 任务通知 8.8 流数据/消息

九、GUI学习📌

9.1 LVGL的移植

9.1.1 以GC9A01为例(SPI)

9.1.2 以SPD2010(带触摸)为例(QSPI +I2C)

十、其他外部硬件demo

参考链接

常用指令

ESP-IDF:

  • 创建工程:idf.py create-project main

  • 新建组件idf.py -C components create-component {componentName}

  • 清除之前的编译: idf.py fullclean

  • 编译: idf.py build

  • 向串口烧录固件: idf.py -p /dev/ttyUSB0 flash/dev/ttyUSB0 为目标串口参数,根据实际填写)

  • 打开串口监视器:idf.py -p /dev/ttyUSB0 monitor/dev/ttyUSB0 为目标串口参数,根据实际填写)

  • 配置菜单 :idf.py menuconfig

  • 选择芯片型号:idf.py set-target esp32 不输入参数的话,会列出所有可用型号

  • 一次性执行构建、烧录和监视过程:idf.py -p /dev/ttyUSB0 flash monitor/dev/ttyUSB0 为目标串口参数,根据实际填写)

  • 获取ADC基准值:espefuse.py -p /dev/ttyUSB0 adc_info 其他:

  • 查询可用串口:ls /dev/ttyUSB*

  • 添加串口权限(需重启):sudo usermod -aG dialout username