ESP32 系列之 ESP-IDF 官方构建方案
淘宝买了一块 ESP32S 的板子,刚到就迫不及待的心情准备搞波大的,准备搞一下 NanoFramework 框架,也就是.Net 的嵌入式系统,支持 C#语言的嵌入式开发,当然也支持(C,C++,Lua,js,At 指令,C#)等等吧,语言种类很多,但是,支持 C#,我感觉就很开心,因为熟悉啊。
基于此,我就写写 ESP32 NanoFramework 框架的简单使用的例子。当然,后期为了对底层进行修改,我这里进行的是官方案例,根据官方的来的,所以,想搞简单方案的可以参考 VsCode 的相关例程。当然,后期我也会出一个。
关于买板子,其实都是根据一个模子出来的,型号选好即可。我这边的型号是 ESP32S,当然其他型号也可以,但是基本是 ESP32 开头。要不然,你自己就得多操心一下板子型号的相关问题。
ESP32 芯片简介
ESP32 SoC 芯片支持以下功能:
- 2.4 GHz Wi-Fi
- 蓝牙
- 高性能 Xtensa® 32 位 LX6 双核处理器
- 超低功耗协处理器
- 多种外设
ESP32 采用 40 nm 工艺制成,具有最佳的功耗性能、射频性能、稳定性、通用性和可靠性,适用于各种应用场景和不同功耗需求。
乐鑫为用户提供完整的软、硬件资源,进行 ESP32 硬件设备的开发。其中,乐鑫的软件开发环境 ESP-IDF 旨在协助用户快速开发物联网 (IoT) 应用,可满足用户对 Wi-Fi、蓝牙、低功耗等方面的要求。
ESP-IDF 环境搭建
可以参考这篇文章
https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/get-started/index.html
当然,我也是参考这篇文章过来的。
本文档旨在指导用户搭建 ESP32 硬件开发的软件环境,通过一个简单的示例展示如何使用 ESP-IDF (Espressif IoT Development Framework) 配置菜单,并编译、下载固件至 ESP32 开发板等步骤。
准备工作
- 一款 ESP32 开发板(我这边是 ESP32S)
- USB 数据线 (A 转 Micro-B)
- 电脑(Windows、Linux 或 macOS)(我这边是 Windows 其他的参考官方文档)
开发板插入到电脑USB上
显示COM5 (不一定非得是5,可能是其他数字)才是正常的,如果不正常,需要下载驱动,我这个板子需要的驱动可以从
https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
下载 CP210x 通用 Windows 驱动程序,里面有 64.exe ,双击就OK,然后,插拔一下开发板即可。
安装 ESP-IDF
第一步:下载 ESP-IDF
地址:
https://dl.espressif.com/dl/esp-idf/?idf=4.4
我下载的是这个,看着相对小点(下载速度不是很快)
下载完
就简单了。直接双击运行
直接下一步,这个地方有环境变量,需要注意,另外会开启 windows 的防御机制,我后边又给关了,太耗性能了
我一般都选 D 盘,C 盘大的,就直接 C 盘了
全选,直接下一步
最后,桌面生成了我们需要的。
至此,安装是完毕了。
第二步安装其他工具
- python (3.7 ++)
- git
这两个是必须安装的,先安装了先。
第三步:设置环境变量
先设置新安装工具的环境变量
设置 ESP-IDF 的环境变量
在 D:\Espressif\frameworks\esp-idf-v4.3.3 目录下(其他目录下的 对应即可)
执行
export.ps1
再执行
install.ps1 all
执行完之后,用户的环境变量里已经有数据了
构建系统
构建命令
idf.py 命令包含了以下相应的功能
- CMake,配置待构建的项目
- 命令行构建工具(Ninja 或 GNU Make)
- esptool.py,烧录目标硬件设备
构建的时候,我们使用的命令是
- 设置构建目标的平台,我这里的平台是esp32
idf.py set-target esp32
- 设置硬件平台相应的参数信息
idf.py menuconfig
会如下图所示
可以通过此菜单设置项目的具体变量,包括 Wi-Fi 网络名称、密码和处理器速度等. hello_world 示例项目会以默认配置运行,因此可以跳过使用 menuconfig 进行项目配置这一步骤。
- 构建命令
idf.py build
- 下载到ESP32上
idf.py -p COM5 -b 115200 flash
命令很简单,com5就是我这边的串口名,你可以改成你自己的
115200就是我设置的串口的波特率,你也可以设置成一样的,或者其他都可以。
- 清除 或 全清除
idf.py clean
idf.py fullclean
我试了两个命令都可以起到重新编译项目的目的。
构建样例
复制
D:\Espressif\frameworks\esp-idf-v4.3.3\examples\get-started\hello_world
项目到
H:\hello_world
我这边是这样的目录,你那边可以随意。
启动命令行
启动任意一个,我启动powershell的
它会自动输出一堆,不用管。
直接到刚才复制的项目目录下
PS D:\Espressif\frameworks\esp-idf-v4.3.3> cd H:\hello_world
PS H:\hello_world>
然后,执行命令
PS H:\hello_world> idf.py build
它会自己输出很多,还有 编译的过程,链接的过程。
就等待它自己编译完。
编译完输出上面那句话。
D:\Espressif\python_env\idf4.3_py3.8_env\Scripts\python.exe D:\Espressif\frameworks\esp-idf-v4.3.3\components\esptool_py\esptool\esptool.py -p (PORT) -b 460800 --before default_reset --after hard_reset --chip esp32 write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x1000 build\bootloader\bootloader.bin 0x8000 build\partition_table\partition-table.bin 0x10000 build\hello-world.bin
or run 'idf.py -p (PORT) flash'
这句话的意思里面有一个重点,重点是它其实是生成了三个bin文件
- build\bootloader\bootloader.bin 0x1000
- build\partition_table\partition-table.bin 0x8000
- build\hello-world.bin 0x10000
这三个bin文件分别是: bootloader,分区表,应用程序 三个文件,后边应该就是它们存储的内部Flash地址了。
为啥是这样的结构呢,且听以后分解(有些大佬肯定是知道的)。
当然,其实系统也提供一条命令执行
idf.py -p COM5 -b 115200 flash
执行后,如下图所示:
然后,可以通过串口助手查看一下(需要注意串口占用的问题,尽量只有一方在使用)。
其中,原示例代码,我已经改了。暂时没有支持中文的串口助手,以后再说。
通过串口助手,我们已经看到,结果跟我们想的一样。
总结
我们已经基于 ESP32官方的 ESP-IDF工具来完成了ESP32的项目逻辑修改,编译,生成,和下载。官方示例很多,也可以多试几个,学习一下。
接下来会把 NanoFramework 给烧成并生成出来,这个时候,才可以用C#。目前还是C。一步一步来。
参考链接
https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/get-started/index.html
阅
一键三连呦!,感谢大佬的支持,您的支持就是我的动力!
ESP32 系列之 ESP-IDF 官方构建方案相关推荐
- ESP32系列音频开发板方案,智能音箱无线WiFi技术升级应用
移动互联网发展至今,视频及直播已成为主流传播方式.短视频及电商直播进一步黏合人们的碎片化时间,用户渗透率高达90.4%,视频的电商转化率也升至72%,各场景使用比例全线增长. 而相关硬件支持的智能音频 ...
- 乐鑫代理启明云端分享| ESP32系列教程之五: Eclipse搭建esp-idf环境
提示:前面小明已经为大家分享了4个章ESP32系列教程,今天继续为大家分享,希望大家多多关注我们!启明云端作为乐鑫代理,一直希望能帮到更多的开发者能快速上手乐鑫系列芯片的开发. 前言 提示:本文档为E ...
- 乐鑫代理启明云端分享|ESP32 系列教程之四: Windows 搭建 esp-idf 环境
提示: 本文档为 ESP32 教程系列,旨在为客户进行 ESP32 系列芯片开 发提供环境搭建.工程示例演示等方面的参考文档及视频演示,降低 ESP32 系列芯片.模组开发的入门难度. ESP32 教 ...
- ESP HMI 智能屏方案介绍
随着智能化设备的普及,现代化的人机交互(HMI)取代了传统的按钮和开关,允许用户通过轻触屏幕或语音来控制其他设备.乐鑫充分发挥 ESP32 系列芯片在人机交互领域的能力,面向各垂直市场,推出单芯片 H ...
- esp32系列(1):Hello world, 初识esp32
ESP32学习记录: esp32系列(1):Hello world, 初识esp32 搭建VScode下的esp32开发环境,hello esp32. esp32系列(2):工程结构学习,从新建工程到 ...
- 乐鑫代理启明云端分享|ESP32系列教程之三: VS Code远程连接Linux
提示:本文档为ESP32教程系列,旨在为客户进行ESP32系列芯片开发提供环境搭建.工程示例演示等方面的参考文档及视频演示,降低ESP32系列芯片.模组开发的入门难度. ESP32教程系列文档主要参考 ...
- 乐鑫代理-启明云端分享ESP32系列教程之二:Linux搭建esp-idf环境
提示:此教程依据乐鑫官方的ESP32入门教程总结而来,仅供个人参考学学习,如有错误,欢迎批评指正.乐鑫官方参考: 乐鑫官方文档地址 1.搭建esp-idf环境 1.1安装虚拟机与Ubuntu 未安装请 ...
- ESP32系列--第六篇 WiFi AP模式
一.目的 在上一篇<ESP32系列--第五篇 WiFi Station模式>我们介绍了station模式,本篇我们介绍一下AP模式. 二.准备 首先我们从esp-idf里面拷贝一份官方的示 ...
- 物联网开发笔记(68)- 使用Micropython开发ESP32开发板之使用官方工具esptool烧录
一.目的 这一节我们学习如何使用我们的ESP32开发板来烧录. 二.环境 ESP32 + esptool + Win10 + python3.10 + 其他工具. ESP32开发板购买地址: http ...
- 【工程师有空了】安信可ESP8266系列及ESP32系列模组AT指令实现网页配网---又多了一个配网方式
文章目录 前言 AT指令介绍: 配网原理 一.实验准备 可能你还要用到: 二.编译固件 三.开启配网 四.常见问题 1.AT固件烧录不显示 "ready" 2.显示配网失败 3.除 ...
最新文章
- python爬虫requests实战_Python_爬虫_requests小实战
- 看看神经网络如何高度还原你的年轻容貌!
- 关于Timer的用法,先简单记下,稍后编辑
- Java对二叉树的操作
- 【每周CV论文】初学GAN图像风格化必须要读的文章
- 轻松把玩HttpClient之封装HttpClient工具类(五),携带Cookie的请求
- 架构师进阶之独孤九剑:设计模式详解
- 2021高考成绩查询大连,2021年大连高考各高中成绩及本科升学率数据排名及分析...
- java某个起点出发的最长路径_【leetcode-动态规划】矩阵中的最长递增路径
- 深度卷积神经网络_深度卷积神经网络中的降采样
- Oracle中的Date、TimeStamp和Interval(上)
- Hadoop/HBase 配置snappy压缩
- Qt制作的一款即时通讯软件
- 防范勒索软件的七大举措
- 我的日程安排表 II
- 路由器IP地址的配置
- 【Word】如何设置交叉引用标注参考文献与设置上标
- 3D变电站vr建模三维展示可视化管理系统
- pc控制iphone的软件_太好用了,这个软件可以让你在电脑上自由控制 iPhone和安卓手机!...
- MLCC电容和电介质材料类别X5R,X7R,Y5V,COG等一些资料
热门文章
- huge形式_Linux hugepage使用与实现
- Java实现按分数排名,同分同名次
- 什么是Base64 编码,Base64 编码有哪些优缺点?
- Visual Studio 2019 企业版 16.9.x 创建离线包并安装教程(带百度网盘下载地址和序列号)
- 浅谈文件捆绑技术及实现方式
- Win10删除右键多余选项菜单
- 关于数据埋点的认识以及在流量分析系统中的实际使用
- 2021年中国机动车保有量及机动车污染物排放情况分析[图]
- ReclyclerView刷新数据
- m4s格式转换mp3_高质量音频转换器,如何转换成mp3音频格式