1 下载官方示例
项目移植
复制相应文件到相应文件夹
添加编译路径
新建一个文件夹driver,导入.c文件
重新编译
编写main函数
再次编译
2 根据对应的引脚连接开发板
USART与esp8266连接
根据源码分析 使用的是USRAT2作为连接esp8266的通信串口
USART引脚
stm32 | esp8266 |
---|---|
PA2 | RX |
PA3 | TX |
3.3v | 3.3v |
GND | GND |
文件修改
esp8266.h
引脚定义 需要则自行修改
mqtt.h
tcp.h
程序烧录测试TCP连接
配置完成
程序烧录测试MQTT连接
相关命令
AT+CWMODE=1 设置为station 模式,ap&station也可以
WIFI连接
AT+CWJAP=<ssid>,<pwd>[,<bssid>][,<pci_en>][,<reconn>][,<listen_interval>]
Function: to set the AP to which the ESP32 Station needs to be connected.
AT+MQTTUSERCFG//用户信息配置
AT+MQTTCONNCFG//连接配置
AT+MQTTCONN//连接命令
AT+MQTTSUB=0,"topic",1
AT+MQTTPUB=0,"topic","test",1,0
程序修改
mqtt.c
注意topic :
AT+MQTTCLIENTID=0,“ClienId”//clientId第二个参数注意每个逗号后加分隔符“\”,例如:t|securemode=3,signmethod=hmacsha1,
c语言 \才是
mqtt.h
这里有坑,一般阿里云的client_id,username,password会超过120,程序会出错
esp8266.c
运行结果