本文共 893 字,大约阅读时间需要 2 分钟。
说明如何将工程中的MQTT包移植到用户自主工程
本节将详细说明如何将工程中的MQTT包移植到用户自主工程中。请确保在移植前已实现稳定的TCP连接服务器功能。
文件夹结构
移植所需文件夹包括以下两个部分:
模板程序文件夹:提供了一个基础模板,用于展示移植过程。 MQTT文件夹:包含处理MQTT协议的核心文件。 - mqtt_msg文件:实现了最底层的MQTT协议处理。
- mqtt.c文件:在mqtt_msg基础上封装了一层,增加了数据缓存管理(采用环形队列)。
- mem文件夹:提供了缓存管理程序。
以STM32工程为例说明移植步骤
将文件添加至工程
编译工程
替换TCP发送函数
初始化定时器
- 将mqtt_time_data(&mymqtt);放入1ms定时器中断中。
注册MQTT功能
完成TCP连接
- 通过TCP协议连接MQTT服务器。
- 处理服务器返回的数据,调用mqtt_connect_ack函数。
- 根据返回状态判断连接成功或失败,并调用相应回调函数。
实现消息处理
- 增加轮询处理函数,处理订阅消息。
- 发布消息时,打包数据并发送。
处理服务器返回数据
注意事项
mqtt.h中的mqtt_send_buff_len默认值为500
- 用户需根据实际需求调整发送缓冲区大小。
- 为避免内存溢出,默认超出长度的数据会被丢弃。
消息发布成功判断
- 只有当消息等级1或2时才会触发成功函数。
- 确保服务器接收数据后才能进入处理。
网络模块通信注意事项
- 如果网络模块不支持透传模式:
- 使用串口2与模块通信时,需注意数据包格式。
- 发送时需发送AT+CIPSEND命令,获取返回状态。
- 接收时需解析数据包,提取有效数据。
接收数据处理建议
版本说明
如发现与当前文件不兼容的情况,请直接替换相关文件。未来将持续更新和完善文件,尽量保持版本兼容。如有不兼容问题,会在文件说明中进行详细说明。
转载地址:http://fcdc.baihongyu.com/