完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
说明
文章(一)创建了学习计划,通过学习发现,可以不用先考虑esp8266驱动及wifi连接问题,学习mqtt对wifi的驱动不是必须的,作为初学者,通过10步学习法划分合适的知识范围,决定跳过第一步学习mqtt没有直接关系的esp8266的at指令及驱动程序的学习。直接从第二部mqtt的移植开始。 硬件平台 芯片选择stm32f103cbt6,板卡暂时没有wifi模块,为了方便调试,直观观察通信数据,采用板卡通过串口(rs232)与电脑相连。在pc上用串口转tcp软件转发数据与网络上的mqtt测试服务器相连。 单片机软件 提前准备了一个移植好freertos的keil5工程。所以电脑提前应该安装好keil5的环境。 第三方软件及工具 [tr]功能名称[/tr]
stm32工程 首先我们准备了一个keil5的工程,芯片采用stm32f103cbt6。 可以自己移植一个,如果想省事可以从我上传的下载一个。 添加mqtt文件到工程 我们用了第三方的mqtt C语言版本架构《paho.mqtt.embedded-c-master》,大家可以在网上下载。 现在解压缩之后,从下列目录复制src文件夹到stm32工程中。 paho.mqtt.embedded-c-masterpaho.mqtt.embedded-c-masterMQTTPacket在下列目录中复制transport.c、transport.h到stm32工程中。 paho.mqtt.embedded-c-masterpaho.mqtt.embedded-c-masterMQTTPacket文件结构如下: keil工程添加mqtt相关文件,如下: 这里注意,要不路径添加到keil工程中,要不提示找不到**.h**文件,会报很多错误。 接口驱动 mqtt通信接口,主要在transport.c中。 例程中是tcp通信的程序,我们采用串口进行通信,tcp相关的程序我们全部屏蔽掉。 我不只需要修改发送函数sendPacketBuffer 如下修改: int transport_sendPacketBuffer(int sock, unsigned char* buf, int buflen) { int rc = 0; //rc = write(sock, buf, buflen); user_uart1_send(buf,buflen); return rc; } 编译 移植完成。 下一篇文章,我们进行计划的第三步,MQTT的应用,主要包含mqtt的功能添加及验证。 总结 本文章主要是准备各种工具及环境,移植mqtt到单片机工程,为下一步学习mqtt功能做铺垫。 |
|
|
|
只有小组成员才能发言,加入小组>>
3253 浏览 9 评论
2933 浏览 16 评论
3435 浏览 1 评论
8936 浏览 16 评论
4027 浏览 18 评论
9663浏览 3评论
1060浏览 3评论
551浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
546浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2283浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-3 01:20 , Processed in 1.052380 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号