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 相关,不用关心!
还是大佬的文笔好呀( ╯□╰ )