最近开始基于乐鑫ESP32的WIFI模组的软件开发,首先要做整套流程的梳理,乐鑫官网以及安信可上已经有了较为系统的资料,但是在实现过程中也遇到了一些问题,花了几天去解决,所以为了总结,也为了给其他人提供一些借鉴,把流程分享一下,官网上相对比较完善的,就不再赘述。

1. 开发方案选择

目前网上有两套较为成熟的方案:

  • (1)基于乐鑫官网推荐的开发方式,原网页:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/hw-reference/get-started-devkitc.html1, 适用于官方开发板,但是我尝试下载安装网页上的工具链安装包,公司电脑网页不够,一直提示connection error,后来回家下载,成功,安装以后尝试进行编译,发现可视化不强,萌新会有点不知如何下手的感觉;
  • (2)基于安信可一体化开发工具,原网页:https://wiki.ai-thinker.com/ai_ide_install2, 相比乐鑫官网需要下载安装什么Git,交叉编译器,以及 CMake 构建工具,安信可的一体化开发环境就相对人性化一点,可视化程度高一点,但是网页上面的教程比较杂,也不太系统;

结论:开发团队人员少,网又不太好的选用方法2,大团队,网又好,建议选择方法1,毕竟官网,做的方案也更系统;

开发板我们选择的是乐鑫淘宝店的 ESP32-DevKitC,大家可以根据自己对于CPU频率、I/O口数量、FLASH大小以及天线选择合适的开发板;

2. 需要的软件以及资料

其中填从网上下载的资料以及软件主要有:

  • 安信可一体化开发工具, Windows + Cygwin + Eclipse + GCC 的综合 IDE 环境,有点就是傻瓜和可视化;
  • ESP_IDF,就是官方源代码和软件库,根据自己需要进行版本选择,我们选择的是ESP-IDF V3.1.3,下载地址:https://www.espressif.com/zh-hans/support/download/sdks-demos;
  • CP2102 USB驱动,用于连接开发板和电脑 ;
  • 安信可串口调试工具,用于确认开发板和电脑连接状态,以及后期调试用,有时候也会用于确认开发板进入下载模式;
  • FLASH下载工具,用于开发板的烧写;

以上工具除了IDF粗腰到乐鑫官网进行下载,其余的均可以在 https://wiki.ai-thinker.com/tools 这个网站上下载。

3. 安装编译

第一步解压和安装,参考网页:https://wiki.ai-thinker.com/ai_ide_install ,比较详细,不再赘述;
第二步,IDF导入和编译,参考网页:https://wiki.ai-thinker.com/ai_ide_install ,也比较详细,不再赘述;

这里主要讲一下我遇到的问题:

  • ESP-IDF V3.1.3中没有app文件夹,第一次编译,直接报错,app是用户程序,走流程的时候,可以用IDF中给的例程,具体操作方式是,在IDF根目录中新建一个app文件夹,在IDF中的example/getstarted/hellowworld下面所有的文件拷贝至app文件夹中,再进行Import操作;
  • Menuconfig 在走流程阶段,即不涉及真正开发时,只需要设置端口位置(在Serial flasher config这个选项中),其余选择默认即可,如下图所示,其中端口位设置为 ttySX(X=(实际电脑显示的端口位 — 1))

4.连接开发板、烧写例程3

整个过程需要:

  • 一根microUSB线,开发板;
  • USB驱动程序、安信可串口调试工具;

整个过程流程如下:

  1. 安装对应USB驱动程序,一般有 CH340G和CP2102 两种,根据USB类型选择;
  2. 确认开发板与电脑连接正常,即开发板电源灯亮起,同时电脑设备管理器中有端口号显示,如图所示;
  3. 打开安信可串口调试工具,在 波特率115200​ 下观察模组的启动或复位后(即嗯一下 EN 按键)的打印信息,有关于开发板的信息返回即可;
  4. 按住BOOT按键,同时按下EN按键,观察安信可串口调试工具,出现 waiting for download 等字样,就可以开始进行下载;
  5. 如果是进行第二次烧写,需要参考参考下一节内容,利用Flash擦除工具进行Flash的擦除,第一次烧写可直接跳过;
  6. 建立Download的Target(在下载过程之前,务必确保Menuconfig已经正确配置,并且整个文件已经正确编译过一遍),建立的方法:https://wiki.ai-thinker.com/ai_ide_use ,关闭串口调试助手,点击建立的Download目标,并且长按BOOT按键两秒,等待烧写完成,如下图;

  7. 重新连接串口调试工具观察,调试;

说一些我们在此过程中遇到的问题:

  • 官方开工板在连接电脑时未显示任何信息,尝试过加大电流和和重新安装过好几次驱动后,尝试利用官方原理图和技术手册找出问题,最后解决是,microUSB线选择数据线,而非电源线
  • 我们在进行ESP32的第二次烧写是出现无法烧写的情况,第一次烧写的是ESP32IDF中的“helloworld”例程,后来通过网上查找资料,网友的回答,尝试着,先擦除FLASH的内容,并且在download过程中长按2S的BOOT键进行解决

5. 利用Flash_download_tools进行烧写 和 FLASH的擦除

一般情况如果方法4烧写方式出现问题,或者是需要进行flash擦除的,可以使用Flash_download_tools进行程序的烧写和擦除。

整个过程需要:

  • 一根microUSB线,开发板;
  • USB驱动程序、安信可串口调试工具;
  • FLASH下载工具;
  • 2M、4M、8M和16M的FLASH空文件,用于FLASH擦除,可以在 https://wiki.ai-thinker.com/esp_download 页面的最底下找到;

整个过程流程如下:

1~4保持不变;
5. 打开FLASH下载工具,根据对应开发板选择DownloadTool,我选择的是ESP32 DownloadTool ,按照图片中信息,配置好bin文件和烧录地址:


6. 按照如图所示内容配置好 晶振频率、SPI SPEED、SPI MODE、Flash Size、串口端口号(根据步骤2中确定的端口号)和波特率等,此处波特率可以尽量选大一些( 默认1152000),以节省时间,最后确认一遍,然后点击START,等待完成( 出现FINISH,即烧写成功);


  1. 最后连接串口调试工具观察。调试;

FLASH的擦除过程其实就是将对应你FLASH容量的空文件利用FLASH下载工具烧写进FLASH中,文件利用给出的下载地址就可以进行,下载,地址直接填0x0就好(全盘覆盖)。

未完待续》》》


  1. https://docs.espressif.com/projects/esp-idf/zh_CN/latest/hw-reference/get-started-devkitc.html; ↩︎

  2. https://wiki.ai-thinker.com/ai_ide_install; ↩︎

  3. https://wiki.ai-thinker.com/esp_download ↩︎

乐鑫WIFI芯片开发流程梳理-工具链、编译和下载相关推荐

  1. Vector诊断系统开发流程及其工具链

    1.制定诊断规范(需求.协议)--------------CANdelaStudio将诊断规范转化为诊断数据库文件cdd,是整个流程的核心: 2.软件代码实现--------------------将 ...

  2. Esp8266 进阶之路35【项目篇】借助机智云平台用乐鑫esp8266芯片做一个商业化的七彩RGB灯泡可调整体方案项目,炫彩夺目高大尚。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个" ...

  3. Esp8266 进阶之路36【外设篇】乐鑫esp8266芯片SDK编程驱动时间芯片 ds1302,同步网络时间到本地,再也不怕掉电断网也可以同步时间了!(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个"hello ...

  4. 乐鑫ESP32芯片/模组选型参考指南

    1.最近一个项目中用到了ESP32的模组,于是开始查询相关的资料,首先来到乐鑫的官网可以看到关于ESP32分为芯片.模组与开发板三部分. 2.由于乐鑫的芯片主打无线通信,包括蓝牙和wifi等一些高频信 ...

  5. 乐鑫WiFi单火线智能开关方案,传统开关实现智能升级

    近二十年来居家生活已发生了重大的变化,许多家用电器已进入到了家庭,极大丰富了人们的生活,如冰箱.空调.LED灯,装饰吊扇.排风扇.浴霸等. 控制它的还是一个简单的机械开关,所能做到的也只是简单地一开一 ...

  6. (七十一)Android O WiFi热点 开启流程梳理

    前言:之前主要梳理了WiFi开启扫描连接的流程,现在梳理下WiFi 热点 的开启流程. 时序图mdj样式:https://download.csdn.net/download/sinat_200594 ...

  7. UE4智慧城市开发流程梳理

    智慧城市开发流程梳理 (摸索UE智慧城市相关做的总结梳理,并不是很专业,如有差错欢迎指正.) 1.GIS数据获取: 谷歌地图.地理数据网站等中获取,或者使用第三方软件下载(水经注GIS.ESRI有的A ...

  8. 《例说51单片机(C语言版)(第3版)》——1-5 MCS-51的开发流程与工具

    本节书摘来异步社区<例说51单片机(C语言版)(第3版)>一书中的第1章,第1.5节,作者:张义和,王敏男,许宏昌,余春长,更多章节内容可以访问云栖社区"异步社区"公众 ...

  9. 《例说51单片机(C语言版)(第3版)》一1.5 MCS-51的开发流程与工具

    本节书摘来自异步社区<例说51单片机(C语言版)(第3版)>一书中的第1章,第1.5节,作者 张义和 , 王敏男 , 许宏昌 , 余春长,更多章节内容可以访问云栖社区"异步社区& ...

最新文章

  1. locust入门:单机使用locust运行压力测试
  2. ffmpeg m4a 转pcm_FFmpeg提取视频音频python将音频转文字
  3. EditPlue使用进阶之正则表达式
  4. 记一次小机器的 Python 大数据分析
  5. 识别波峰波谷算法_马丁普林格:波峰-波谷演进法
  6. java 内部类 返回值_Java学习笔记:形参和返回值、内部类、常用API
  7. [转载]心存高远 方能获得成功
  8. 35、IFE任务34——听指令的小方块(二)
  9. 软件技术方案_广东省汕尾市海丰陈氏数字化网络化全县族谱统修工作方案(草案)...
  10. 人工合成生命的最新进展比AI还快
  11. win10发送到桌面快捷方式没了
  12. Joomla 一个实例建站过程
  13. android手机迁移,换手机不用愁,一分钟告诉你如何将手机数据快速迁移!
  14. 新版微信-微信公众号一键关注解决办法
  15. 【oracle报错】ORA-28000
  16. person.s=“柳岩“和person[“s“]=“李小璐“的区别
  17. 等价类划分和边界值的区别与联系
  18. 跟着团子学SAP PPM-项目组合概览-项目组合结构
  19. 【我的开源】蜗牛闹钟
  20. Scintilla MFC使用教程

热门文章

  1. ubuntu控制台访问u盘_解决ubuntu无法挂在u盘的问题
  2. 【人工智能】论未来人工智能的大模型生态:重塑技术前景与应用
  3. 2021抖音独家九州互娱修复商业版带透视强控+架设教程
  4. 淘宝海量数据库之一:来自业务的挑战
  5. 凸优化基本概念与kkt条件
  6. atompython运行插件_做一个运行Python文件的Atom插件
  7. 网页——JSON、简单网页版计算器
  8. 站长SEO工具,网站SEO优化
  9. 动手写prometheus的exporter-01-Gauge(仪表盘)
  10. 上传本地代码到GitHub,并用GitHub pages配置静态网页