乘着物联网的东风，中国的安信可（AI-Thinker）推出的ESP8266系列可是火了一把。所谓物美价廉，花很少的钱就能让你的老爷车51单片机系统插上无线的翅膀，真的是带你zb带你飞。。。其实不仅仅是51，AVR/STM甚至Arduino系列都能鸡犬升天。说了这么多废话，这篇文章不是教程，只是记录一下上手esp01时掉过的坑以及怎么爬出来的。。。一定要进入flash模式！！一定要进入flash模式！！一定要进入flash模式！！不然无法烧录。进入方法 GPIO0下拉CH_PD上拉 的状态下reset，重新上电就行。■ ■ ■ 重要！！！！ ■ ■ ■ESP01 烧录这个模块的时候，我最初直接用USB转串口模块直接供电，最后烧录是成功了但是无限重启，各种奇怪的现象 最后，用两节5号电池单独给模块供电（一定要跟USB串口模块共地，否则串口不能工作）后解决了。 原因是电脑USB口驱动电流太小，实测ESP01上电电流达到200ma，直接把电源电压拉低到1.几伏特。模块当然无法工作。 事后仔细查看了我用的USB转串口模块上使用的稳压芯片662K，这个芯片最高输出电流只有200ma，ESP01启动时需要200到300mA的峰值电流,根本带不动。 以后再购买USB转串口模块的时候可以注意一下输出电流的参数，大一点比较方便。 后来又自己用输出电流800ma的LM1117T来供电，没有问题了。（注意尽量避免面包板跟杜邦线多次转接，会影响正常启动的） 总结，电源很重要。奇怪的问题大多跟电源有关。 Flasher的设置■DIO■波特率选115200（注意，这里选的波特率并不是烧录完成以后的系统的默认波特率，只是烧录时使用的波特率而已，大一点就快一点）■Flash大小可以用下面的esptool工具查看，同样需要先进入flash模式（GPIO0下拉CH_PD上拉） esptool.py -p COM5 flash_id ※为了安装这个tool，需要先安装python27以上，然后再python里安装依赖包 setuptools / pyserial ，最后才能安装esptool成功。 安装顺序: 1 - python27 装完以后吧python安装目录以及python/script目录一起加入环境变量path 2 - 进入文件夹 ./pythonLib/ ``` python ez_setup.py install (必须,安装pyserial用） python get-pip.py install (非必须，只是为了方便以后用pip安装python库) ``` 3 - 进入文件夹 ./pyserial-3.2.1/ ``` python setup.py install ``` 4 - 进入文件夹 ./esptool-master/ ``` python setup.py install ``` 运行时需要进入安装的目录。 常用命令 （COM5根据实际情况修改） 擦除flash : ``` esptool.py -p COM5 erase_flash ``` 查看芯片信息 : ``` esptool.py -p COM5 flash_id ``` 详细命令: [详细命令](https://github.com/espressif/esptool "详细命令") ■esp_init_data_default.bin 烧录文件的烧录地址需要用到flash大小的信息。（这个data可以不烧录） https://nodemcu.readthedocs.io/en/master/en/flash/ SDK Init Data 0x7c000 for 512 kB, modules like most ESP-01, -03, -07 etc. 0xfc000 for 1 MB, modules like ESP8285, PSF-A85, some ESP-01, -03 etc. 0x1fc000 for 2 MB 0x3fc000 for 4 MB, modules like ESP-12E, NodeMCU devkit 1.0, WeMos D1 mini 0x7fc000 for 8 MB 0xffc000 for 16 MB, modules like WeMos D1 mini pro See "4.1 Non-FOTA Flash Map" and "6.3 RF Initialization Configuration" of the ESP8266 Getting Started Guide for details on init■烧录完成后，去掉GPIO0的下拉，重新上电.第一次上电可能会看到 Formatting file system. Please wait... 这种消息反复出现，不要以为又失败了无限重启，这是正常的，反复几次以后就进入NodeMCU系统了。