本帖最后由 aimejia 于 2018-5-30 15:16 编辑
/ D# y% E. V0 r& S1 Y; y
1 T2 A# e8 @0 F9 G& a前言4 e: Z) v7 e0 P1 q+ J( A- K
- R' _! q, T+ X# dESP8266玩了很久了,一直都听说出了ESP32。最近就买了两块该开发板。要玩ESP32,首先就要搭建好开发环境。
, w8 g7 p/ K) W# K
- K" F7 R- v1 _8 l/ ?那么这篇文章就是主要讲解如何在Windows下搭建ESP32的开发环境。
. G3 V# T, b- M: F/ |4 C
6 @8 B4 ^. l2 g, h开发平台和工具( U: }. L' Y3 {" G
( c8 ?1 Z) O# w: X% N( G/ T& D
Windows 10 x644 X4 |4 u S9 z7 n% C
AiThinkerIDE_V0.5
, a6 E0 L7 q" a% ccygwin
1 k1 `3 k0 C% h6 ?3 g6 W7 A# _eclipse2 O: @' m6 w4 B% _# x
esp-idf
8 l1 Z3 o4 n1 n4 aFlash 下载工具 V3.4.8
! S: ]1 {1 L( q& i R" NIDE环境使用安信可的IDE,目前最新版本是AiThinkerIDE_V0.5
* W a# B! V( e3 k' w$ V i; q4 D2 R L
. s5 Q* r8 i- U/ }" W t* A& D, ]环境下载和安装1 e! }2 g8 d' c0 R/ Y
8 G+ p2 F! R2 g/ _/ ~
首先需要下载AiThinkerIDE_V0.5。解压后主目录有一份说明文件:
3 a) h2 D' Q0 Z7 t* H7 p ?& w+ x2 I
1 打开 ConfigTool.exe,点击 Default 可以检测当前所在路径,或手动进行路径配置;
3 |2 `' [4 J" }8 a+ e: j. U; S, N1 ~. I
2 配置后点击 Save 进行保存;5 `# D c' \6 i! s% t
$ h& K& _5 H, e* w6 }& h2 e
3 打开 AiThinker_IDE.exe,可以直接进行固件的编译;# M& n: [- c) B3 }6 S
7 V! X) k+ L1 A/ @. k4 点击 OpenWorkSpace.bat 可以快速打开默认的 project 目录;$ Y( Y2 p4 z6 J/ ~3 t& T7 u2 J
, v) \5 \$ D' ~: _& x0 J7 u
5 点击 Register 可注册 Cygwin Here 快捷方式到鼠标右键,可实现在当前目录打开终端。
D6 C+ ^8 ^' e! F+ w, r2 x7 O7 b5 P& b! m
在主目录下找到 cygwin 文件夹和 eclipse 文件夹,进行配置即可。
8 s' D$ W9 o# P$ F& G8 c% U3 D0 N$ p w; w! g! L
注意!cygwin 文件夹所在路径不可以有空格或中文!!!! y$ _4 W- L9 b4 N
: o/ R# t# g; |) ~& Q8 e! s! S9 g* N& m N4 @' v
配置好后打开 AiThinker_IDE.exe 即可。
& r* _1 _3 N6 a7 B& Y* R' f0 K$ Q" [8 P- q) H
如果打不开 ConfigTool.exe ,打开 DotNetFx40 Framework 快捷方式下载安装 dotNetFx40_Full_x86_x64.exe。
$ T. `& J$ @" u! h* |" `9 n* |: A0 `6 A2 y+ h8 @6 m
IDE 默认配置保存在同目录下的 config 文件夹内。 z' E2 A' ?4 z$ r
' I( r. ]6 a2 U! P6 E* t; f- Y- `ESP-IDF 下载
2 j2 s7 W2 W z/ R$ O; @& E
1 c) K" C1 n6 x5 Eesp-idf 和 esp-idf-template可以到github下载,下载后请执行 git pull 进行更新。
0 f; l: [4 `" X5 t4 g0 m) W2 f2 f3 @# O2 j S" L
另外,如果是从 github 下载的 idf 似乎会编译报错,不知道是什么原因,所以 idf 用安信可提供的即可。2 v& ~5 O4 w1 z% J) \( n2 O7 X
: x2 d5 X* O8 E p% K* l导入项目
0 Q! [5 B3 e1 q& h
1 U4 O' \+ w; d6 F @% Z打开IDE后可能需要导入下载好的 IDF。那么就要进行工程导入。下面步骤是参考安信可官网旧版IDE的导入教程。
! B& k9 ?1 k& Y' }- k" q
' p/ I8 s5 q3 ^8 g1.选择 File→Import
8 o# `) v" ?- k+ A9 Z2 q0 n' ?$ F- r0 m
: T. O& j. m7 ^" i& e$ G2.点开C/C++分支,并选中Existing Code as Makefile Project- K8 g# u7 o; l2 O2 S V( _
. G- \" i6 ?' k L9 j# ?: R! Z2 C5 [" m7 Y, C6 W; ]+ C
3.去除 C++ 支持,选中 Cygwin GCC* W" o3 g0 y2 m+ ~( G
点击Browser,选中 esp-idf 所在的目录
1 D: b( Z$ R. m; ^
0 P& s# J7 F: u! P
' z7 |6 b, E! b/ ~5 Y5 W: M- A4.点击 Finish 完成 esp-idf 的导入
7 a% b. X+ H- r6 `
9 Y* A( s0 i) r; n$ K' D Z a1 a/ A: V9 h8 w9 f
配置项目
0 G, _3 i2 B6 Y
6 b- W S; O2 c% c# J因为 make 只能从 app 目录启动,故我们需要修改整个项目 build 的位置
3 t; s6 z7 X( R9 U4 n$ p [) q$ P# M- K
右键项目→Properties ,单击 C/C++ Build,修改如下图
- q$ Z. Z2 V3 u1 x9 R, h- f/ K" U5 s' U
+ K; A( i# D- z, X1 g( \* n此时,已经具备了编译的基础。4 r( u- Y- Z7 Q8 U9 j
# z7 e E+ \1 r, D2 E2 |; H* o
下面我们配置 make menuconfig 和 make flash 两条指令
) a3 {+ h& c6 u% [( v9 E" a& O9 X. v
首先新建target,右键项目名称→Make targets ,选择 Creat8 [8 n7 U( D: H" l8 J
U/ r! Z2 c9 r* Y
! W/ L6 @5 {1 h. x
给该 Target 新建一个名称:MenuConfig,( A8 `5 f" }+ `( p( s
' Q0 \$ V$ F9 G. u3 K0 h8 ^在弹出的页面中取消勾选 Use builder setting ,取消勾选 Same as the target name 并清空 Make target 的内容。 f$ `8 A3 C$ V) O+ `4 j8 e
' L& c7 j' d2 U+ f& F7 L, ^! E
在下面 command 中输入 mintty.exe -e make menuconfig。- Z' Q4 q) I0 g% {! r
. o* L0 u( [. D0 W% u+ r; R9 c. f" c0 W. Q5 p0 H7 ^2 K) `- R
点击 OK 保存& b$ q. z( t9 |9 ^# v0 Q
" _, V" E9 q; R# J/ X' m重复上一步骤,新建一个Download的 Target 。
- }5 C$ V& l' K0 V. [
- B0 ?3 W/ [: I. \0 i在弹出的页面中取消勾选 Use builder setting ,取消勾选 Same as the target name 并清空 Make target 的内容。
1 c m7 { m2 f2 d8 d
) m: B. b) m; C: Z% v/ ~- e5 D在下面command 中输入 make flash。
/ q3 E( T$ V" N# {$ L v
6 X7 y5 r) w8 T( S$ m- _: l
6 @; H. M- V: K& b点击 OK 保存% S# d1 _- X' A4 V* \
1 g, _- m* C9 u! {7 E/ w8 s( f% I
选中项目,按下快捷键 Shift + F9,弹出刚才新建的两个 Target" ^& K$ W# Y! y5 x5 e
+ r! S' w b! o, a1 z
; P J* q- V: ?7 }: k- {
鼠标选中需要编译的 Target, 点击 Build 即可实现在 Eclipse 中下载和配置 idf
5 n5 F& P* u& ?9 [) S" Q& x+ |
# {" k% \$ ^ b, z3 Y1 g: T& t; T" l
编译项目
1 w$ |6 p2 _1 L1 S% h
/ X0 n, B& \# O. N首次使用请先执行 make menuconfig# K/ l' m) X' E( B
, K8 [4 F$ \; D
鼠标选中项目名称,点击右键出现菜单:5 h" r. _" [: o9 J6 G( L
0 Q( O! U( ~/ J! D3 `7 n, S
# F) W& Z: B: z4 z2 P" L/ p% |8 G' hBuild Project :编译项目# J# N3 V& V" N) K' J+ l. ]3 g
Clean Project:清理项目) i+ F" T2 v! q. U
之后到esp-idf\examples\get-started目录下把 hello_world 文件夹拷贝到 esp-idf 主目录,同时修改名称为 app 。与前面 C/C++ Build 的配置相对应。6 Q8 {% x# G2 [0 Y8 n7 n5 K3 j
; R) r3 H6 R1 D4 v; t6 v) z' N8 b" Q, q
编译之前clean一下,然后编译,
' x V7 W2 E1 v9 i
; ~9 V2 y+ O3 ^- f; u当控制台最后输出如下信息即编译成功。(这里为了阅读方便手动换行了一下)
4 f. b& H% r& q7 c2 U- python /cygdrive/f/ESP32/esp-idf/esp-idf_20170410/components/esptool_py/esptool/esptool.py --chip esp32 --port /dev/ttyUSB0; ]- i" N' f/ V+ j
- ) ]) z8 f. ?0 D: I
- --baud 115200 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect
+ |) H t$ S8 x k - ' p# N* m* ?+ {8 s7 {6 j9 B
- 0x1000 /cygdrive/f/ESP32/esp-idf/esp-idf_20170410/app/build/bootloader/bootloader.bin2 a4 O1 v1 E2 S+ M# K F& h
6 ^: l2 t4 o; K$ p' \; g3 `/ [- 0x10000 /cygdrive/f/ESP32/esp-idf/esp-idf_20170410/app/build/hello-world.bin
/ q) e" t9 N& i6 d
M7 z) y) Q6 Q& X+ {/ G- 0x8000 /cygdrive/f/ESP32/esp-idf/esp-idf_20170410/app/build/partitions_singleapp.bin, R6 ~5 g& c+ R! P3 o
; x% b6 G7 y% q8 N, D6 h
复制代码 Build Project 是执行 make all命令。其实,bootloader.bin编译烧写一次即可,所以只需要编译用户程序,编译命令:
0 g. N( @7 w0 y" w: j, y! f按照上一小结配置 make menuconfig 命令的方法添加进去即可。. I u! s1 [5 q4 j E( A* f
' ^+ y: ~* c6 r2 E9 J* F' V
烧写固件
9 b* j. t$ d W9 B4 U f/ _5 B8 U s8 r' W1 ]: i! E Q6 e9 @; {+ {
编译后由控制台输出信息可知各个烧录bin文件的地址。! z/ ?9 w* ~. C$ [3 S. _
+ R; w, r; q$ N. M/ q- S4 O p" z* }5 K, u! @
到官网的工具栏目那里下载Flash下载工具,目前最新版本是V3.4.8,支持ESP32。启动后根据提示选择 ESP32 即可。
* n: ? v+ s' j6 y; ?
& u0 i' p& ~" A# o5 ]$ d. H0 b1 L8 y: y" J" n
之后打开串口,波特率115200,复位ESP32,可以看到下面信息。
; g# n( [6 {, Q; ^- ……' k1 H6 e" H1 V! G7 B. J
# j |+ `+ q* z% S4 P- Hello world!2 f" K2 f; S! d& x; Y' F
% ~# f, }& ?2 S7 ]: _# i- Restarting in 10 seconds...; E/ m; i, I3 f
2 F9 ]9 p3 _$ _ A& j& D( z5 E8 j- Restarting in 9 seconds...! `$ V, }/ z- s' D3 F8 G
1 R, T! F: I) Y! W2 I1 D( G- Restarting in 8 seconds...& o* A" _& { r0 t- A+ K3 ?% |# b
- 4 p9 H D/ E, T
- Restarting in 7 seconds...
; ~& }" P* U8 V: M4 a* E
4 P$ U) m0 {$ f e, @- Restarting in 6 seconds...
* j. r/ j' i6 M$ E - & H- p" O! |5 j# l2 O
- Restarting in 5 seconds...
, P0 x% E. E" j* E# X* X% }& x' a
7 ~ |# L. e+ s/ u9 K2 y- Restarting in 4 seconds...
, o% ?8 S' b0 R- \" N( I4 K5 w4 l! }8 Z
' ~7 v/ `" f7 t( ?5 u- Restarting in 3 seconds...
# E9 N$ v+ v" ]: @! p - " g4 C3 {+ e" g* v( W7 H8 e
- Restarting in 2 seconds...
* |' ^- H2 y r - ( `% c$ D& C2 [
- Restarting in 1 seconds...! p7 ?- ]& O4 p3 a9 `
- $ }4 j, S: ^( j! ] g# G
- Restarting in 0 seconds...3 j: Z/ R* q. X+ p* a
) ^: N$ q& f; g8 Q- Restarting now.
复制代码 如果看到上面的信息说明我们的 hello_world 工程烧录成功。* U( e" U4 ~, n$ ^0 ^
' J) o4 A+ e7 S" q ~5 u如果没有看到上面的信息,说明没有进入 hello_world 代码,可能原因是 bin 文件烧写的路径不对。旧版本的partitions_singleapp.bin是烧写在0x4000的(输出信息也是说明烧录在0x4000,很坑人),这一点必须要注意。
% F6 A% `+ S7 ]+ H8 U- ~$ B' W: n7 f# x, U; X8 G8 `
其他
0 S. Q& m: M% v! \* P3 Z- ]1 `! D- ]9 n
打开 ConfigTool.exe 之后如果出现下面对话框(访问被拒绝),试一下以管理员身份运行。
% e5 b2 v" t3 Y) N8 _
% k! w% Y* Z6 c- Q: _) O: d: u& j
4 K/ ^1 ]8 D& i; }% F. O( W
& j) {' g7 F( a( B
: ]: }7 l) M. p转载自阏男秀 % ?6 ` m( M5 z8 {( L/ y4 @" R
6 {9 w3 _& {5 w% v# ]4 d; c; o6 j5 D" u3 o! [' X! v. D* |
* Q+ H, |: c0 L" I) E! y7 B. j& y
|