【DigiKey“智造万物,快乐不停”创意大赛】实现STM32F746 LVGL+LwIP+MQTT收发数据
[复制链接]
【DigiKey“智造万物,快乐不停”创意大赛】 移植FreeRTOS + LVGL +Lwip实现TCPclient
前面在完成了lvgl_lwip+tcp后考虑需要数据的收发,那么采用mqtt是最好的选择之一。
【学习资料】
此次移植的学习资料来源于野火的《LwIP应用与开发指南》
在线的网址为:21. MQTT协议 — [野火]LwIP应用开发实战指南—基于野火STM32 文档 (embedfire.com)
【移植过程】
1、下载源码:
提取码:b92p
- 下载后找到mqtt的例程,复制源码中的MQTT文件夹到工程目录下面:
- 然后复制mqttclient.c/h两个文件到Src目录下面:
- 修改mqttclient.h中的服务器IP地址,用户名与密码:
- 在freeRTOS中新建两个任务,并在任务中启用recv与send任务:
6、在lvgl的按键事件中发出消息,在发送任务中读取事件,如果有按下的消息,则发送给服务器。
【实验效果】
- 打开一下mqttx调试器,连上mqtt服务器,发送消息后,在串口打印出消息内容:
2、按下开发板的button键,发布一则消息,在mqttx中可以接收到该内容
【讨论】
在调试mqtt的过程中,我发现freertos对于任务的栈大小难于掌握,如果任务栈的太大,就会启动任务失败,或者运行中死机。有经验的大佬指点一下。
|