近期在做STM32之MQTT客户端连接到服务器。野火家的教程是移植别人家的MQTT客户端代码,实际LwIP源码中就包含这个,但是这个在网上很少能找到,所以我就先抛砖引玉了,有问题可以联系我哦。
MQTT介绍这里就不在说了,主要说实现方法。
这个前提是你的准备一个LwIP协议栈TCP可以正确运行起来的工程。以下说明中LwIP版本均为2.1.2,其他版本没有查看和测试,环境为keil5.34 AC6 主控为STM32F407VE。
这里先贴一个连接效果图

这里再贴一个订阅的效果图

这里再贴一个发布的效果图

观察源码会发现,LwIP源码目录里是有关于MQTT客户端相关的API,但是几乎没有相关例程。源码位置如下图所示
相关头文件的位置如下图所示

首先要在你的工程里包含这个源文件,如下图所示

然后添加头文件路径,正常情况是不需要关注的(仅供参考),如下图所示

对应的是源文件的头文件路径是这个(这里只是参考)

接下来就是实际程序编写了
#include "lwip/apps/mqtt.h"
#include "string.h"
#include "SystemLed.h"/*这个是私有的,和本次样例无关*/
void Cb(mqtt_client_t *client, void *arg, mqtt_connection_status_t status);
void cb(void *arg, err_t err);
void mipcb(void *arg, const char *topic, u32_t tot_len);
void midcb(void

本文介绍如何在STM32上使用LwIP实现MQTT客户端,包括连接服务器、订阅和发布消息的过程,并提供了完整的代码示例。
最低0.47元/天 解锁文章
409





