当前位置: 首页 > news >正文

Ubuntu ESP32开发环境搭建

文章目录

  • ESP32开发环境搭建
    • 安装ESP-IDF
    • 搭建一个最小工程
    • 现象

ESP32开发环境搭建

最近有个小项目需要用到能够联网的mcu驱动,准备玩玩esp的芯片,记录下ESP32开发环境搭建的过程。

ESP-IDF 是乐鑫科技为其 ESP32 系列芯片提供的官方开发框架。这个框架主要用于开发、构建和部署基于 ESP32的物联网(IoT)应用。
笔者主要开发环境是ubuntu系统,所以本文主要介绍ubuntu环境下的搭建。

安装ESP-IDF

首先安装ESP-IDF SDK:

mkdir -p ~/esp  
cd ~/esp          
git clone --recursive https://github.com/espressif/esp-idf.git

SDK下载下来之后,我们还需要下载对应的工具才能实现编译、下载以及调试仿真,下一步安装对应的工具:

cd ~/esp/esp-idf                                        
./install.sh all

./install.sh all 会安装所有的esp芯片,如果你只需要特定系列的芯片选择特定的芯片会加快下载工具速度。

安装完成以后就可以设置环境变量,通过官方提供的命令行开始操作了

cd ~/esp/esp-idf                                        
. ./export.sh# 可以通过如下指令查看SDK支持的命令
idf.py --help

搭建一个最小工程

下面基于命令行搭建一个开发环境

  1. 创建一个新demo工程,保存在/home/tao/work/code/esp_ws/demo路径下:
idf.py create-project --path /home/tao/work/code/esp_ws/demo demo

sdk会自动生成如下文件:

➜  demo tree .
.
├── CMakeLists.txt
└── main├── CMakeLists.txt└── demo.c1 directory, 3 files
  1. 设置目标芯片
    sdk支持多款芯片可以使用 idf.py --list-targets 来列举当前支持的芯片型号
idf.py set-target esp32

设置芯片型号以后系统会自动生成很多文件,主要是一个build文件夹和一个sdkconfig文件:

➜  demo tree . -L 2
.
├── build
│   ├── app-flash_args
│   ├── bootloader
│   ├── bootloader-flash_args
│   ├── bootloader-prefix
│   ├── build.ninja
│   ├── CMakeCache.txt
│   ├── CMakeFiles
│   ├── cmake_install.cmake
│   ├── compile_commands.json
│   ├── config
│   ├── config.env
│   ├── esp-idf
│   ├── flash_app_args
│   ├── flash_args
│   ├── flash_args.in
│   ├── flash_bootloader_args
│   ├── flasher_args.json
│   ├── flash_project_args
│   ├── kconfigs.in
│   ├── kconfigs_projbuild.in
│   ├── ldgen_libraries
│   ├── ldgen_libraries.in
│   ├── log
│   ├── partition-table-flash_args
│   └── project_description.json
├── CMakeLists.txt
├── main
│   ├── CMakeLists.txt
│   └── demo.c
└── sdkconfig
  1. 编译工程
    使用如下指令编译工程:
idf.py build
  1. 刷机
    编译成功以后将开发板通过串口接入PC,识别到串口以后可以通过如下指令刷程序:
idf.py -p PORT flash

PORT 为串口号

  1. 清除工程
    可以使用如下指令清除工程
idf.py clean 
idf.py fullclean
  1. 监控
    可以通过如下命令来监控芯片的运行状态:
idf.py monitor
# 也可以一块使用,刷机后直接监控
idf.py -p /dev/ttyUSB0 flash monitor

上面这一步可能会刷机失败,因为对/dev/ttyUSB0访问的权限问题,需要将当前用户加入到dialout用户组

sudo usermod -aG dialout  $USER

$USER为当前登陆的的用户名,/dev/ttyUSB0根据自己实际的串口端口填写。

现象

在上面的demo.c中填入如下内容:

#include <stdio.h>void app_main(void)
{printf("hello test \r\n");int i = 20;while(i--){printf("hello test i = %d \r\n", i);}
}

然后在工程路径下执行如下指令刷机监控:

idf.py -p /dev/ttyUSB0 flash monitor

现象如下:
在这里插入图片描述
观察完毕以后如果想退出串口,使用如下快捷键 Ctrl + ] 即可

http://www.lryc.cn/news/488863.html

相关文章:

  • 【gitlab】部署
  • vue中路由缓存
  • Github 2024-11-18 开源项目周报 Top15
  • GRCNN使用onnxruntime和tensorrt推理
  • java中的this关键字
  • Easyexcel(3-文件导出)
  • iOS应用网络安全之HTTPS
  • openharmony napi调试笔记
  • springboot基于微信小程序的农产品交易平台
  • Spring Boot 注解
  • P8692 [蓝桥杯 2019 国 C] 数正方形:结论,组合数学
  • Spring Boot开发—— 实现订单号生成逻辑
  • React中Redux的基本用法
  • unity3d————基础篇小项目(设置界面)
  • 推荐几个 VSCode 流程图工具
  • 用java和redis实现考试成绩排行榜
  • hhdb数据库介绍(9-24)
  • HDMI数据传输三种使用场景
  • unigui 登陆界面
  • 无人机 PX4飞控 | CUAV 7-Nano 飞行控制器介绍与使用
  • 安装spark
  • 佛山三水戴尔R740服务器黄灯故障处理
  • 大学课程项目中的记忆深刻 Bug —— 一次意外的数组越界
  • html数据类型
  • Kotlin Multiplatform 未来将采用基于 JetBrains Fleet 定制的独立 IDE
  • Redis中常见的数据类型及其应用场景
  • 代理IP在后端开发中的应用与后端工程师的角色
  • 工作流和流程引擎有什么区别?
  • 【SpringBoot】27 拦截器
  • AI对开发者的影响,以及传统软件开发 与 AI参与的软件开发区别