OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3473|回复: 1

stm32f103 tcp clietn透传转pahomqtt

[复制链接]

0

主题

1

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2019-10-22
在线时间
5 小时
发表于 2020-12-12 15:13:43 | 显示全部楼层 |阅读模式
本帖最后由 qianxilin 于 2020-12-12 15:14 编辑

这个其实是配合有人的4G模块使用的。因为他们的模块不支持MQTT,只支持串口透传。就参考MDK插件包中的pahomqtt代码做了简单的移植。放了好久了,一直没用上。有谁感兴趣了,测测。
参考插件包的代码移植的,记得值需要修改一个.c文件即可。

我用了一个开源的代码kfifo来做串口的接收和MQTT的读缓冲。
串口的收到的数据用ring_buffer_put入缓冲。MQTT底层的static int network_read(Network* n, unsigned char* buffer, int len, int timeout_ms) 使用ring_buffer_get来读缓冲区的数据。。
代码都是从MDK软件包拷贝出来的,注释掉了原来的接口。

bug可能会有,我只是做了简单测试,跑了2个小时,没有发现什么问题。
(上图超时时,bytes应该等于-1?)
kfifo缓冲区的大小必须是2的次方,比如256,1024,2048

用到的插件:



int rxCnt=0;
void USART1_IRQHandler(void)
{
    uint8_t rc;
    if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
    {     
        rc = USART_ReceiveData(USART1);
        ring_buffer_put(gRingBuf, (void *)&rc, 1);        
    }
    rxCnt++;
}







MyPahoMqttTest.rar

3.16 MB, 下载次数: 155

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2015-1-12
在线时间
9 小时
发表于 2021-1-4 08:48:08 | 显示全部楼层
支持一下,学习学习。
只有做好自己该做的事,才有能力做自己想做的事!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-15 08:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表