Hello world
由于我也是在边学习边写文章,所以疏漏是难免的,我发的也不是教程贴,只不过是笔记,如果有大佬发现问题,欢迎指正!
在上一篇文章的最后,其实已经可以正常运行Hello world了,不过最后部分不是很详细,所以,今天补充一些上次的内容,然后再开始一些新的内容。
首先打开mingw32,因为如果使用mingw64有时候会出问题,然后输入命令make menuconfig,就可以进行配置了。

首先,需要配置的是串口的配置属性,所以打开第三个项目回车。

首先需要配置的是COM口,我们要根据自己的情况进行决定,就像我的就是COM3口。
然后,保存后,进行退出,推出后执行make,等待结束!

make的时间可能比较长,1-2分钟吧。

执行完毕后再执行make flash就可以进行烧写了,一定要先让板子进入烧写模式,并且不占用串口的情况下执行哈!

如果出现以上内容那么就烧写完毕了,然后我们打开串口愉快的玩耍吧,不过打开串口要注意把波特率改成74800哈!

这里面包含两方面的内容,在ESP8266 Hello world!以前的是BOOTLOADER进行输出的,以后的呢就是我们程序运行输出的啦!
修改代码
我们修改的地方有两处,一处是希望它可以100秒后再进行重启!

第二处呢,是我们想要把他的串口波特率改成115200。
所以呢,我们就需要打开ESP8266的API文档进行查找一下怎么修改,首先打开文档,在里面找到API下面的UART,就可以看到esp_err_t uart_set_baudrate(uart_port_t uart_num , uint32_t baudrate )函数了!

不过呢,我们可以看到上面还需要增加一个Header File,但是在我们增加到代码中的时候不可以只需要写include以后的内容就可以了,所以,最后的代码如下:

然后,再执行编译,再执行烧写,再打开串口,进行查看!

嗯,虽然115200下可以正常显示了,但是开始的时候还是有一堆乱码,这些乱码其实就是在BootLoader下输出的,由于在BootLoader下是74800波特率下输出,所以自然就是乱码了,可以看到在ESP8266 Hello world!输出就是正常的了。
虽然目前没有办法可以完全不让BootLoader进行输出,也有可能是我没有找到,不过我们可以让他输出的内容少点,在执行make menuconfig的时候,选择Bootloader选项。

然后把第4项Bootloader log改成no output即可,然后执行编译、执行烧写后,再进行查看串口!

可以看到乱码少了很多!
一些注意的事情
这些注意的事情半颗心脏的笔记中提到了,也是我当时入门使用的过程中遇到的一些问题,但是当时找资料不太好找,我这里就直接复制过来了,这里备注一下原链接# Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印。
SPIMODE 的选择
好多人问我这个SPI MODE应该怎么选择,这个其实是esp8266芯片和flash芯片的连接方式决定的,四根线就是QIO,而DIO就是六根线,至于后面还有QOUT和DOUT和flash芯片有关,平时最多的是DIO或者是QIO了!
ESP8266 上电时打印的 boot 模式信息代表什么?如何改变 boot 模式?
ESP8266 上电时会判断 boot strapping 管脚的状态,并决定 boot 模式。例如,ESP8266 上电时打印的 boot 模式信息如下:
ets Jan 8 2013,rst cause:1, boot mode:(3,2)
其中打印的 boot mode 的第一位数字(3)代表当前的 boot 模式。
Boot 模式由 strapping 管脚的 3 位值 [GPIO15,GPIO0,GPIO2] 共同决定。如下表所示:
| Strapping 管脚的 3 位值 |
[GPIO15,GPIO0,GPIO2] |
Boot 模式 |
|---|
| 7 |
[1,1,1] |
SDIO HighSpeed V2 IO |
| 6 |
[1,1,0] |
SDIO LowSpeed V1 IO |
| 5 |
[1,0,1] |
SDIO HighSpeed V1 IO |
| 4 |
[1,0,0] |
SDIO LowSpeed V2 IO |
| 3 |
[0,1,1] |
Flash Boot |
| 2 |
[0,1,0] |
Jump Boot |
| 1 |
[0,0,1] |
UART Boot |
| 0 |
[0,0,0] |
Remapping |
烧写失败定位
确保 boot 模式在 UART boot.
将 ESP8266 拨到烧写模式,看烧写口的 log(默认 74880 查看). 正常烧写应该是 boot mode:(1,n), 其中n任意,第二个参数和 SDIO 相关,不用关心!
看 log 乱码/无打印定位,确保 boot 模式在 Flash boot!
将 ESP8266 拨到运行模式,看 log 口的输出. 正常log应该是 boot mode:(3,n),第二个参数和 SDIO 相关,不用关心!
还是大佬的文笔好呀( ╯□╰ )