ESP8266 – 搭建阿里云物联网与MQTT.fx通信的平台(二)
ESP8266 – 串口助手 AT MQTT 指令与阿里云物联网平台建立通信(三)
演示代码在文章顶部可以下载,也可以通过评论留下邮箱进行发送
前沿
前面讲解了固件的烧录,搭建阿里云物联网平台和esp8266利用串口助手与阿里云物联网平台建立通信,本小节主要讲解利用STM32与esp8266模块进行通信。
1 准备工作
在进行本小节内容的时候,需要做如下的准备工作:
- 烧录AT MQTT固件,见链接:ESP8266 – 烧录AT固件(一)
- 阿里物联网平台的搭建,见链接:ESP8266 – 搭建阿里云物联网与MQTT.fx通信的平台(二)
如果对AT指令不是很熟悉,建议参考:ESP8266 – 串口助手 AT MQTT 指令与阿里云物联网平台建立通信(三),简单的掌握一下AT指令。
2 硬件环境介绍
硬件选择安信可的ESP01S模块与STM32单片机相连接,具体连接方式这里不展开讲解,网上也有很多资料,原理就是串口间的通信。
3 软件环境介绍
软件环境使用keil5,编译下载stm32f103标准库程序进行演示。演示代码在文章顶部可以下载,也可以通过评论留下邮箱进行发送。下面重点讲解软件代码。
3.1 串口初始化及配置
主要实现了串口的初始化配置,并且使能了接收完成中断。
static void ESP8266_USART_Config ( void )
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
/* config USART clock */
macESP8266_USART_APBxClock_FUN ( macESP8266_USART_CLK, ENABLE );
macESP8266_USART_GPIO_APBxClock_FUN ( macESP8266_USART_GPIO_CLK, ENABLE );
/* USART GPIO config */
/* Configure USART Tx as alternate function push-pull */
GPIO_InitStructure.GPIO_Pin = macESP8266_USART_TX_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(macESP8266_USART_TX_PORT, &GPIO_InitStructure);
/* Configure USART Rx as input floating */
GPIO_InitStructure.GPIO_Pin = macESP8266_USART_RX_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(macESP8266_USART_RX_PORT, &GPIO_InitStructure);
/* USART mode config */
USART_InitStructure.USART_BaudRate = macESP8266_USART_BAUD_RATE;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No ;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStr