【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
esp32的烧入其实和stc89c52rc很相似,都是串口烧入。市面上的模块,一般都是集成了wch的芯片,插入一根type c就可以烧入了。可以如果我们部署的时候,没有这根线,或者说自己画的板子上没有wch,该如何烧入呢。
1、ttl烧入
所谓的串口烧入,其实就是ttl烧入,这些ttl就是esp32直接引出来的引脚。
2、找到tx/rx/gnd
细心一点的话,可以很容易从开发板上找到tx/rx/gnd,当然烧入的时候一般需要带电操作,所以还需要找一下5v_in。
3、找一个usb转ttl模块
有了这个模块,下面就可以把模块通过usb连接到电脑,然后模块本身连接到esp32进行烧入。注意tx/rx交叉连接,电源接5v,别忘记接地。
4、idf里面重新选择串口
这个时候,一般串口都会发生改变,所以让idf重新选择一下串口是很有必要的。
5、开始烧入
烧入的时候,如果直接点击idf flash命令,基本是很难烧入进去的。这个时候,需要首先点击flash,然后按住reset和boot按钮,松开reset,不出意外的话,这个时候就可以看到烧入的进度条了。
6、使用monitor看下打印
烧入结束之后,不着急的话,用monitor看下打印,确认烧入的bin是不是我们刚刚生成的bin文件。记得按一下手动按一下复位键。
7、烧入的工具
一般来说esp32烧入的上位机有这么几个。第一个就是esp32 flash tool,多用于测试和生产。第二个就是arduino的烧入工具,少儿培训类的场景。还有一个就是esp-idf,这种多用于专业开发,而不是esp32 flash tool这种生产场景。
8、调试打印
通常情况下,esp32的调试一般都是printf,实在不行就只能想想其他办法了。
9、生成的bin文件
一般烧入需要三个文件,当然这三个文件,系统会帮我们全部烧入进去。首先是bootloader文件,其次是partition文件,最后才是app文件。熟悉交叉编译的同学都知道,嵌入式开发的时候生成的一般都是elf,mcu的话一般会转成hex,而esp32则转成了bin文件。所谓的bin文件,其实就是用objcopy把elf文件里面不相关的信息,例如调试信息、段信息等等全部删除,只留下代码和数据信息,这就是bin文件的由来。
10、串口烧入的由来
本来cpu是没有办法进行烧入的,之前一般都是jtag烧入,因为jtag也是挂在总线上,所以jtag可以直接控制内部flash,或者先把烧入算法加载到ram,jtag负责传数据,让cpu跑起来并烧入这些bin,这都是可以的。现在串口之所以能烧入,就是因为内部已经集成了一部分固件。上位机可以通过ttl和esp32内部通信,本质就是和这些固件在通信,就是这个道理。