~~ 文章约定 ~~
约定1:本篇所述固件,已测试可用于阿里云连接,其它云,未测试。
约定2:本烧录方法,以魔女开发板的板载ESP8266作示范。
约定3:如果使用独立的CH340、独立的ESP8266,请先安装CH340驱动,并按需接线。
一、准备工作
准备1:把开发板上的所有杜邦线、设备,全拔了!
不要问为什么,全拔光!
如果开发板上插了显示屏,把屏也拔下来。
有些人相当的懒,不听劝,三分钟能完成的烧录操作,他非要搞了几个小时还在爬坑。
准备2:把已打开的串口助手,不论是哪个,全部关闭退出!
避免烧录所用串口,莫名被占用,导致软件一直“等待上电”。
准备3:把烧录软件所在的文件夹,复制到桌面!
网盘资料下载完成后,在示例文件夹的ESP8266示例中,有一个文件夹:“MQTT”。本篇操作图解所述,烧录软件、固件,里面都收集齐了。
如果没有开发板的网盘,可以在右侧链接中下载文件夹:MQTT固件、烧录软件
其中,有一个英文名称的文件夹:FlashDownloadTool_V3.6.2.2,固件、烧录软件在里面。
特别注意:
这个烧录软件,网上版本众多,有部分版本无法烧录,原因不详
请不要自行下载其它版本,务必使用文件夹中经测试可用的:v3.6.2.2版!
把文件夹-"FlashDownloadTool_V3.6.2.2",或"MQTT",整个复制、粘贴到:桌面。
注意,是指英文名称的文件夹,不能单单复制烧录程序的文件!
因为里面的烧录软件,需要在英文路径中运行。
准备4:给开发板烧录示例文件夹中的第1个示例:LED点灯。
如果你使用的是独立的CH340+ESP8266, 直接跳过本步骤。
为何要烧录点灯示例??
下面几行,对这一步操作的原因进行稍作解释,无需刻意理解。
首先,为了使烧录更简单,无需外接USB转TTl模块,本操作方法使用的是开发板上的USB转TTL电路,通过跳线帽,连接8266的串口引脚。
另一方面,开发板上的USB转TTL电路,在硬件设计时,早已连接了USART1 (PA1、PA12)。
这样,USB转TTL电路 ,就是一拖二了!!
而串口通信,不是总线机制,不支持一对多、一主多从等,将无法通信。
所以,需要给STM32烧录一个没有USART1初始化、通信的代码,才能避免这个冲突。
二、操作步骤图解
操作1:使用跳线帽,把ESP8266的RX、TX连接至虚拟串口。
魔女开发板,8266的引脚,和USB转TTL的引脚,都在板子右上角。
使用跳线帽,如下图,连接第3和第4行。
操作2:USB线,插入到CMSIS-DAP接口,并连接电脑。
留意1:这时候是正常上电,8266上的蓝灯,会闪烁2次,表示进入运行模式。
留意2:USB上方的白色LED,会一直慢闪,表示被电脑成功识别。
操作3:使ESP8266进入烧录模式。
按着左下角第1个按键:KEY_1,不放手。
按一下右下角的复位键,或者,插拔USB线重新上电也行。
留意:松开复位键的瞬间,8266的蓝灯,闪烁1次,表示:进入烧录模式。
然后,可以放开按键1了。
下面是这个操作的原理图,可以跳过,不过多解释,有兴趣的可以自行研究。
如果你使用的是独立的ESP8266模块,给IO0接GND后再上电,同样效果
操作4:再次确认文章开头时所说的烧录软件文件夹,已复制到桌面。
其实只要是英文路径,哪个目录都可以。
建议还是粘贴在桌面。
里面的烧录软件,必须在没有中文路径的位置运行!
操作5:打开烧录软件ESPFlashDownloadTool_v3.6.2.2.exe。
在刚才所复制的文件夹中。
务必使用这个v3.6.2.2版本,不要自行下载其它版本!!
操作6:在所弹出的窗口中,选择第1个选项。
操作7:解锁参数锁定。
进入烧录界面,如果界面全灰,如下图。
这是因为被锁上了,按图所示,取消锁定即可。
操作8:设置烧录参数。
第一行文件框右边,有一个按钮,点击可选择需要的烧录文件。
所需要的MQTT固件, 已保存在刚才复制的文件夹中:ESP8266-AT_MQTT_1M_1471.bin
注意:不管你烧录的是什么固件,文件体积,必须≤1M。
第一行:打勾,其它的行,不用打勾。
图中第2、3、4行中的文件,不用管它,不相干的,空着就行,不要打勾。
操作9:选择对应的串口端口号。
在烧录软件的右下角。
注意,如果之前已打开了其它的串口调试软件,先关闭,先关闭,先关闭,防止误操作。
如果显示有多个串口号,不知道对应哪一个,可以先行把USB线拔了,看看少了哪一个。
操作10:选择波特率。
在烧录软件的右下角。
这个没要求要什么波特率,建议选择大一点的,越大越快,越慢越稳。
操作11:点击START,开始烧录。
按钮在烧录软件的左下角。
正常情况下,点击START后,一两秒左右,蓝色进度条就开始跑了。
如果超过三四秒,还没开始跑,不用等了,应该是上面有步骤漏做了。
操作12:等绿色区域出现“完成”字样,烧录完成,关闭烧录软件。
如果烧录成功,绿色区域,会提示:FINISH 完成。
如果烧录失败,变成红色,并提示:ERROR 错误。
操作13:让ESP8266进入正常运行模式。
按一下复位键即可。
或者,拔了USB线重新上电,也行。
留意:上电瞬间,8266的蓝灯,会闪烁两下,表示已进入正常运行模式。
操作14:验证是否烧录成功。
使用任意一款串口上位机,并打开相应串口端口。
按一下复位键,观察串口输出,如果出现如下信息,则烧录成功。
在串口软件的发送文本区,输入: AT+GMR, 记得加回车键,或者打勾”\r\n”、发送新行。
将返回版本号信息:AT version:2.3.0....., 这个就是MQTT固件的版本号。
操作15:跳线帽归位,使ESP8266连接USART。
拔出跳线帽,连接第2行和第3行。
这样,就能在Keil里编写需要的代码,通过USART方式控制ESP8266通信。
提示:跳线帽归位后,必须经代码控制,不能像刚才那样操作: 串口软件直接与8266通信 。
关于不能成功烧录的原因收集:
- 1、没有插对跳线帽!
- 2、没有进入烧录模式!
- 3、没有把文件夹复制到桌面再运行!
- 4、没有关闭其它串口软件!
- 5、使用了自己另行下载的烧录软件版本!
- 只要严格地按照上文中描述进行操作,这么多年,暂时还没有不成功的,一例也没有!
-
至此,可以通过MQTT指令,进行阿里云的畅游了(换个坑继续掉头发)~~~