图6 通过串口助手与ESP8266“对话”
2.2 ESP8266与STM32的连接如图7所示,开发板上的ESP8266 WiFi模块和M6312 GSM模块都是通过串口2与STM32通信,因此需要借助跳线帽来对这两个模块二选一,不接或接错都无法联网。
图7 ESP8266与STM32连接示意图
再来看原理图8,由于中间有跳线的部分,所以图中信号线的连接看起来有点曲折,但其实真正有效的信号线就三条:
- ESP8266的串口接收URXD接STM32的串口2发送(PA2)
- ESP8266的串口发送UTXD接STM32的串口2接收(PA3)
- ESP8266的复位信号RESET_WIFI接STM32的PC14
图8 ESP8266与STM32连接原理图
2.3 工程文件清单考虑到物联网云平台的开发涉及硬件设备、网络协议、云平台API等多类源码,因此我们在工程中新增了必要的子目录来分类存放,如图9所示,本章只聚焦ESP8266的设备驱动文件esp8266.c和esp8266.h。此外,由于加入了串口2并启用了中断,因此串口驱动文件usart.c的源码也需要补充。
图9 ESP8266工程文件清单
2.4 程序执行流程由于涉及到两个串口的数据收发和联动,为了使程序彼此兼顾,两个串口的接收都通过中断程序处理,图10给出了这两个中断程序和主程序的分工和联系。