MQTT 移植STM32+GPRS(串口透传)(三)

本文介绍了将MQTT协议移植到STM32微控制器上,结合GPRS模块实现串口透明传输的过程。作者通过下载MQTT嵌入式C库和JSON解析库,改写串口中断接收函数以及MQTT传输接口,实现了数据的发送和接收。在STM32F103和ESP6288模块上裸机开发,利用定时器中断发送传感器数据和保持服务器连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


昨天,去参观了AWE(中国家电及消费电子博览会),智能家居,智能插座、智能LED灯、智能摄像头、智能橱柜等等,大开眼界,原来这些别的公司的产品都正式投产了。还顺便打听了几家提供云服务的公司,他们一听MQTT就说支持MQTT的协议,2家开发通信模组的公司甚至直接可以提供支持MQTT的固件。看来我要加快了。
##开发环境:
stm32f103 + esp6288(固件中支持自动连接服务器) 裸机开发

##步骤
首先在 https://github.com/eclipse/paho.mqtt.embedded-c 下载源码! [ ](http://omp77n3im.bkt.clouddn.com/MQTT_scoure.png)
MQTTPacket 文件全部添加到keil工程当中,参考samples提供的例子,删除不需要的头文件。
MQTTPacket/samples/transport.c和transport.h也要添加到工程中去,这是我们要改写的接口。
因为MQTT使用JSON打包封装的数据处理会很简单,因此还要下载一个基于c 的文件用于格式转换。
https://github.com/DaveGamble/cJSON 拷贝cJSON.c和cJSON.h到工程中。
改写串口中断接收函数,其中socket连接服务器是在串口转wifi模块中设置好服务器的ip和port,这样移植到gprs模块时会很方便。在每次串口中断中清定时器的计数值,同时接收长度变量加1,并约定在50ms内收不到数据,认为接收完成,完成标志位置1。
*transport.c中修改里面的四个接口:
!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值