Ubuntu ESP32开发环境搭建

news/2024/11/23 23:48:21/

文章目录

  • 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.ppmy.cn/news/1549399.html

相关文章

Django如何配置多个环境的MySQL数据库

在 Django 项目中配置多个环境的 MySQL 数据库是一个常见的需求&#xff0c;特别是在开发、测试和生产环境中使用不同的数据库配置。你可以通过在 settings.py 文件中使用条件语句或环境变量来实现这一点。 1. 使用环境变量 使用环境变量是一种灵活且安全的方式来配置多个环境…

【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作

1.实验目的 熟悉了解掌握SQL Server软件的基本操作与使用方法&#xff0c;以及通过理论课学习与实验参考书的帮助&#xff0c;熟练掌握使用T-SQL语句和交互式方法对数据表进行插入数据、修改数据、删除数据等等的操作&#xff1b;作为后续实验的基础&#xff0c;根据实验要求重…

云平台使用常见场景解决方法清单

面向对象 以下是一份针对云平台租户运维人员在面对云主机故障、磁盘扩容等常见场景时的解决方法清单&#xff0c;所有教程仅供参考 强烈建议先在测试环境操作熟练再去生产环境操作 强烈建议先在测试环境操作熟练再去生产环境操作 强烈建议先在测试环境操作熟练再去生产环境操作…

wsl虚拟机中的dockers容器访问不了物理主机

1 首先保证wsl虚拟机能够访问宿主机IP地址&#xff0c;wsl虚拟机通过vEthernet (WSL)的地址访问&#xff0c;着意味着容器也要通过此IP地址访问物理主机。 2 遇到的问题&#xff1a;wsl虚拟机中安装了docker&#xff0c;用在用到docker容器内的开发环境&#xff0c;但是虚拟机…

uni-app 认识条件编译,了解多端部署

一. 前言 在使用 uni-app 进行跨平台开发的过程中&#xff0c;经常会遇到需要针对不同平台或不同环境进行条件编译的情况。条件编译是一种在编译过程中根据指定条件选择不同代码路径的技术&#xff0c;可以帮助我们在不同平台或环境下编写不同的代码&#xff0c;以适应不同的平…

Spring Boot 教程之六:Spring Boot - 架构

Spring Boot - 架构 Spring Boot建立在核心Spring框架之上。它是 Spring 框架的简化和自动化版本。Spring Boot 遵循分层架构&#xff0c;其中每一层都与其他层&#xff08;按层次顺序位于上方或下方&#xff09;进行通信。Spring Boot 文档为 Spring Boot 框架提供了以下定义。…

Spring 与 Spring MVC 与 Spring Boot三者之间的区别与联系

一.什么是Spring&#xff1f;它解决了什么问题&#xff1f; 1.1什么是Spring&#xff1f; Spring&#xff0c;一般指代的是Spring Framework 它是一个开源的应用程序框架&#xff0c;提供了一个简易的开发方式&#xff0c;通过这种开发方式&#xff0c;将避免那些可能致使代码…

经验笔记:git checkout 与 git switch

Git Checkout 与 Git Switch 引言 在使用 Git 进行版本控制时&#xff0c;git checkout 和 git switch 是两个常用的命令&#xff0c;用于分支管理和文件恢复。虽然它们有一些相似之处&#xff0c;但各自的功能和使用场景有所不同。本文将详细介绍这两个命令的用法、区别和实…