STM32CubeIDE系列教程-10lwIP+FreeRTOS实现MQTT通信

 ​​前言

目标:lwIP+FreeRTOS实现MQTT通信


一、准备工作

硬件平台:正点原子探索者开发板

二、使用步骤


1.新建工程

依次点击File-->New-->STM32 Project:

 

2.工程配置

保持工程默认配置:

代码生成选项配置:

3.可视化配置

 

 网卡配置:


 默认生成的引脚配置:

修改为适配正点原子探索者开发板的引脚配置:

 基本参数配置:

高级参数配置:

 打开串口1:

 FreeRTOS配置:

修改默认定时器:

 任务堆栈大小设置:

高级参数设置,使能新库可重用功能 :

 LWIP配置:

配置静态IP地址:

设置MEMP_NUM_SYS_TIMEOUT为合适大小:

 生成代码,Project-->Generate Code:

 usart.c中添加重定向函数:

/* USER CODE BEGIN 0 */
#include "stdio.h"
 
#ifdef __GNUC__
 
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
 
PUTCHAR_PROTOTYPE
{
  // 注意下面第一个参数是&huart1,因为cubemx配置了串口1自动生成的
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, HAL_MAX_DELAY);
 
  return ch;
}
#endif
/* USER CODE END 0 */

 

main.c中添加头文件包含:

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */

 打开项目-->属性,进入设置界面:

添加lwip官方例程中的mqtt_example.cmqtt_example.h:

 添加网卡初始化代码:

 main.c中包含头文件:

freertos.c中添加mqtt初始化函数 :

 

  编译链接下载:

 将开发板接入路由器:

MQTT代理选择EMQ进行测试:

实验效果:

总结

实验效果:开发板订阅主题并接收主机发送过来的消息。

猜你喜欢

转载自blog.csdn.net/qq_16284479/article/details/121776592